我有一个看起来像这样的iframe:
<iframe id="iframe2" ...>
#document
<html>...</html>
</iframe>
我正在尝试使用iframe
标记获取html
下面的项目
在JavaScript中,当我这样做时:
document.getElementByID("iframe2")
这将返回正确的iframe。
然而,当我这样做时:
document.getElementByID("iframe2").childNodes
返回值为[]
。
document.getElementByID("iframe2").getElementsByTagName("#document")
和document.getElementByID("iframe2").getElementsByTagName("html")
也会返回[]
。
如何访问html
代码?
另外,#document
标签叫做什么?
答案 0 :(得分:6)
document.getElementByID("iframe2").contentWindow.document
或者,旧版IE不支持的变体,
document.getElementByID("iframe2").contentDocument
这会为您提供嵌入页面的document
对象,然后您可以使用.documentElement
,.body
或.head
属性来获取html / body /头DOM。
如果您想要嵌入页面的window
对象,请使用contentWindow
代替contentDocument
。
MDN有iframe scripting指南,您可能会觉得有帮助。
答案 1 :(得分:2)
请尝试以下代码:
var a = document.getElementById("iframe2").firstChild;
答案 2 :(得分:1)
试试这个:
var a = document.getElementById("iframe2").getElementsByTagName("*")[0];
答案 3 :(得分:0)
IFrame内容的网址与父网页的网址是否相同?如果没有,由于同源策略,您将无法访问IFrame内的任何内容。