"contentDocument"对于iframe(甚至是旧的“frame”元素)表示什么?它是否等同于“html”元素或“body”元素? 它有什么用途? 并且这个属性在所有浏览器中都受支持吗?
"contentDocument"对于iframe(甚至是旧的“frame”元素)表示什么?它是否等同于“html”元素或“body”元素? 它有什么用途? 并且这个属性在所有浏览器中都受支持吗?
contentDocument是只读的Document类型属性,自DOM Level 2引入。如果有可用的话,它将返回该框架包含的文档,否则返回null。
从DOM iframe元素中,脚本可以通过contentWindow属性访问所包含HTML页面的窗口对象。contentDocument属性指的是iframe内部的文档元素(相当于contentWindow.document),但在IE8之前的版本中不支持该属性。
此页面或框架包含的文档
此属性在Windows Internet Explorer 8中新增。
因此,要获取body元素的innerHTML,可以使用以下代码:
iframe.contentDocument.getElementsByTagName("body")[0]
或者
iframe.contentDocument.body
在今天的浏览器中。
contentDocument
是获取iframe或frame的Document
对象的标准方法。它与在iframe内运行的JavaScript通过document
访问的对象相同。
如其他答案所述,IE直到8版本才支持该方法,但支持通过contentWindow
访问iframe的Window
对象。因此,一个跨浏览器获取iframe的<body>
元素的方法是:
var iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
var iframeBody = iframeDoc.body;
请注意,如果iframe不是从与主文档相同的域名中提供的,则浏览器安全限制将防止以此或任何其他方式访问其文档对象。
contentDocument
代表iframe(DOM对象)的文档。它不等同于html
,因为文档有自己的属性,但是如果您键入:
myFrame.contentDocument.body
myFrame.contentWindow.document
享受吧,Nili