我有这个iframe,你可以看到它用onload触发器调用js函数。
<iframe name="top" id="top" width="99%" height="20%" src="top.htm" frameborder="0" scrolling="no" onload="log_in()"></iframe>
我需要做的是在该函数中实现“top.htm”(更改innerHTML和类似内容)中的元素。
但问题是功能无法识别“top.htm”页面的元素,只识别index.htm(带iframe的页面)中的元素。
P.S。我必须使用DOM,我必须使用iframe。
任何人都知道该怎么做?
10x: - )
答案 0 :(得分:3)
例如访问所有dom元素:
document.getElementById("top").contentWindow.document.getElementsByTagName("*")
这是你的问题吗?
答案 1 :(得分:2)
Iframe窗口及其文档
可以使用name属性通过frames数组获取iframe生成的窗口和加载到iframe中的文档的引用。
window.frames[iframeName]
window.frames[iframeName].document
只要您将名称属性附加到iframe,帧数组引用方法即使在相当旧的浏览器中也具有广泛的支持。为获得最佳效果,请同时使用名称和ID。
对于更多最新的浏览器,iframe中的文档也可以通过iframe元素的contentWindow(IE win)和contentDocument(DOM)属性引用:
// IE5.5+ windows
document.getElementById(iframeId).contentWindow
document.getElementById(iframeId).contentWindow.document
,或者
// DOM
document.getElementById(iframeId).contentDocument