日期:2014-05-16  浏览次数:20360 次

请教一个关于动态ID的设置与获取问题,谢谢!
请教一个动态ID的设置和JS获取动态ID的问题,具体详情请往下看,非常感谢啊!!谢谢了!!谢谢了!!!

是这样的,我做了一个视频转载到页面的功能,视频代码如下:
<embed id="shipin" src="http://优酷土豆.swf" quality="high" width="540" height="450" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash"></embed>

该代码之下有一个图片按钮“点击宽屏播放”,点击后用JS来重新设置宽屏,图片代码如下:
<img style="cursor:hand" onclick="shezhikuanping()" src="../img/kuananniu.gif" alt="趣我花缘宽屏高清模式播放" />

页面最底部</body>之上有“关闭宽屏播放”的按钮,代码如下:
<div id="guanbikuanping" style="position:absolute;right:0;top:10px;width:20px;font-size:14px;text-align:center;display:none;">
  本网站开发宽屏播放模式,只为要你好看<br/><br/>
  <img style="cursor:hand" onclick="guanbikuanping()" src="../img/gbkpgq.gif" alt="关闭宽屏高清" />
</div>

点击“点击宽屏播放”的时候,JS代码如下:
function shezhikuanping() //宽视频模式时,即用JS代码定义宽屏播放的宽度和高度,隐藏横纵向滚动条
{
  var sw=window.screen.availWidth; //视频宽,整个显示屏的宽度
  var sh=document.documentElement.clientHeight; //视频高,浏览器窗口的可用高度,不是网页整个高度,而是浏览器窗口的可视高度(不包括浏览器头部)
  document.getElementById("shipin").width=(sw-25)+"px"; //减去30像素,是为了要给关闭DIV留出空间
  document.getElementById("shipin").height=(sh+10)+"px"; //加上10像素,是为增加视频的高度,可以隐去小部分视频底部操作栏空间,同时也不会影响操作  
  document.getElementById("shipin").style.position="absolute"; //视频设为绝对定位
  document.getElementById("shipin").style.top="0";
  document.getElementById("shipin").style.left="0";
  document.getElementById("guanbikuanping").style.display="block"; //显示关闭宽屏按钮
  this.scroll(0,0); //设置横纵向滚动条的坐标
  document.getElementById("html1").style.overflowX="hidden"; //遮罩时消除横向滚动条
  document.getElementById("html1").style.overflowY="hidden"; //遮罩时消除纵向滚动条
}  

点击“关闭宽屏播放”时候,JS代码如下:
function guanbikuanping() //关闭宽视频模式
{
  document.getElementById("shipin").width="540px"; //还原原来的宽度
  document.getElementById("shipin").height="450px"; //还原原来的高度
  document.getElementById("shipin").style.position="relative"; //原来原来相对定位的位置
  document.getElementById("guanbikuanping").style.display="none"; //关闭高清模式的按钮DIV
  document.getElementById("html1").style.overflowX="auto"; //横向滚动条可用
  document.getElementById("html1").style.overflowY="auto"; //纵向滚动条可用
  window.location.href="#shipin"; //让页面回到原视频的位置
}

在页面只有一个视频的情况下,测试就是完全正常的,但是如果页面上不止一个视频的话,测试就不正常了,打开和关闭仅对页面上第一个视频有效。比如说,我点击第二个视频之下的“点击宽屏播放”,它就会让第一个视频成为宽屏充满整个浏览器可用区域。
问题是视频往往不止一个呀,一个帖子,如果有五六楼回帖,每一楼都有一个视频的话,应该怎么解决呢?我想应该是动态ID吧,但是要怎样设置动态ID呢,JS又怎么获取动态ID呢?
请各位大侠帮一把,谢谢了,3Q

------解决方案--------------------

学习了,帮顶!
------解决方案--------------------
你每引用一个视频就给个不同的id行不?

然后调用方法的时候把id给传进去
------解决方案--------------------
说实话,你应该问简洁点。。。
------解决方案--------------------
设置点击相应按钮时传递对象进去就可以了呀。而不要用document.getElementById("shipin")这种方法 。
------解决方案--------------------
关闭方法,可以设置一个参数 动态ID。 这样就不会冲突了
------解决方案--------------------