index.html里包含两个文件
我可以通过document.iframe1.document. 来访问hh.html文件中的节点。
但是很奇怪,当我动态修改iframe1.src="ww.html"文件后,然后我再用相同的方法document.iframe1.document. 来访问ww.html文件中的节点,却告诉我找不到该节点(undefined).请问是怎么回事,请大家帮忙。
[b]问题补充:[/b]
index.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
gg.html
hh.html
你如果有时间,帮我把代码复制到你的本地,帮我调试一下,希望能帮我调通。。小弟再三感谢。
呵呵...贴出来再找问题就简单多了嘛.
这是因为你改变了iframe的src值后,紧接着就直接访问页面中的input2元素了,但实际上此时的input2元素尚处于未生成的状态.所以访问的时候会访问不到.如果使用setTimeout延迟几秒钟进行访问的话就可以访问得到了.
小弟不才, :oops: 也想不到有什么特别的好的办法处理这类问题.能想到的就是在index.html中,给iframe1设置一个body.onload事件,然后在事件中再进行操作.
你那种方式是可以完全可以进行访问的.
如果找不到元素,你应该看的是你的ww.html中的内容有没有问题,比如说某处的html标签未闭合.或者根本就没有这个元素存在 .
把你真实的iframe语句.ww.html的内容贴出来.否则我们根本无法判断问题出在哪里.
不好意思.没注意看你的代码.
我想问一下楼主:对于你这种方式的跳转,页面的内容真的改变了么?
因为想让iframe的内容页面跳转.直接改变其src属性,src属性确实是改变了,但并不会影响其页面的内容.
所以想让iframe的内容跳转,应使用其它方法,如:
[code="js"]iframe1.location.href="hh.htm";[/code]
关键是你访问的方法不够标准
应该是
document.getElementById('iframe1').contentWindow.xxxxxxx
要这样访问.
另外iframe跨域的话iframe里面的DOM是不能操作的.
还有就是ham说的是否src已经加载完成了.
如果iframe src的代码是你自己写的话其实我建议你在src的代码里自己定义一个函数,
用于和上级页面的交互,原因是这里面有浏览器安全问题至少google的浏览器是有限制的.
参见
http://www.iteye.com/topic/239535
这个帖子,里面有类似的讨论.