weixin_42297497 2008-10-23 10:49
浏览 243
已采纳

怎么访问iframe 的网页元素

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">


New Document




function change(){ alert(document.iframe1.document.getElementById("input1").value); document.iframe1.src="hh.html"; alert(document.iframe1.document.getElementById("input2")); }



gg.html



New Document






hh.html



New Document








[b]问题补充:[/b]
我简化了一下,为什么
document.iframe1.src="hh.html";
alert(document.iframe1.document.getElementById("input2"));
后,结果为null
[b]问题补充:[/b]
hi,我试过您说的方法,还是不行


New Document




function change(){ alert(document.iframe1.document.getElementById("input1").value); document.iframe1.src="hh.html"; setTimeout("show()",50000); } function show(){ alert(document.iframe1.document.getElementById("input2")); }




你如果有时间,帮我把代码复制到你的本地,帮我调试一下,希望能帮我调通。。小弟再三感谢。

  • 写回答

5条回答 默认 最新

  • iteye_17163 2008-10-23 17:21
    关注

    呵呵...贴出来再找问题就简单多了嘛.

    这是因为你改变了iframe的src值后,紧接着就直接访问页面中的input2元素了,但实际上此时的input2元素尚处于未生成的状态.所以访问的时候会访问不到.如果使用setTimeout延迟几秒钟进行访问的话就可以访问得到了.

    小弟不才, :oops: 也想不到有什么特别的好的办法处理这类问题.能想到的就是在index.html中,给iframe1设置一个body.onload事件,然后在事件中再进行操作.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 gwas 分析-数据质控之过滤稀有突变中出现的问题
  • ¥15 没有注册类 (异常来自 HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
  • ¥15 知识蒸馏实战博客问题
  • ¥15 用PLC设计纸袋糊底机送料系统
  • ¥15 simulink仿真中dtc控制永磁同步电机如何控制开关频率
  • ¥15 用C语言输入方程怎么
  • ¥15 网站显示不安全连接问题
  • ¥15 51单片机显示器问题
  • ¥20 关于#qt#的问题:Qt代码的移植问题
  • ¥50 求图像处理的matlab方案