关于getElementById的问题。。。。。。。。。。。。。
页面中有2个框架,我想在一个框架中用getElementById控制另一个框架中页面的网页元素,如DIV,img等,该怎么做呢?
如:
document.getElementById( "Image ").onmousedown = null;
Image是另一个框架中网页的一张图片,怎么在本框架中的网页中控制它呢。
------解决方案--------------------一个框架中控制另外一个框架的东西,首先要能够在该框架得到那个框架的对象,例如框架iframeA(name='a')和框架iframeB(name='b'),在iframeB中有一个图片,起id为“myimg",那么在iframeA中控制iframeB中那个图像尺寸的代码为:
parent.b.document.getElementById("myimg").width=200;
其实网页中定位对象的场景非常得多,你可以查看我以前写过的一篇文章《web开发过程中要注意的问题》,里面有一个内容对定位对象做了详细的描述。
另外对于窗口之间的定位,你可以下载jsjava2.0 使用其中的DocumentUtils类,里面提供了一些定位框架的方法,另外提前说一下:框架或者说窗口,以iframe为例,有标签对象和组建对象两种身份,如果当作一个窗体,则是组建对象,如果当作文档中的一个普通标签,则是标签对象,例如:
<iframe name="myname" id="myid" src="..."></iframe>
那么window.myname 取到的是组建对象,通过组建对象可以取到内部窗口的DOM对象,例如控制子窗体中的各个对象,但是不能取到该标签的各个对象,例如src属性,即window.myname.src是取不到的。
而document.getElementById("myid")取到的是标签对象,通过标签对象不可以(直接)取到内部窗口的DOM对象,但是可以取到该标签各个对象,例如iframe的frameBorder、style等等。
另外,对于窗体间对象的获取,许多时候还要考虑窗体加载延迟的问题,这个需要考虑使用setTimeout方式避免,其实关于窗体的问题,需要说明的东西还有很多,这里就不尽述了,如果你还有什么问题,可以于与我联系。