contentDocument for an iframe
contentDocument for an iframe
对于iframe(甚至是旧的"frame"元素),"contentDocument"究竟代表什么?它是否等同于"html"元素或"body"元素?它有什么用?所有浏览器都支持这个属性吗?
w3.org
类型为Document的contentDocument,只读,在DOM Level 2中引入此框架包含的文档(如果有并且可用),否则为空。
MDN
从DOM iframe元素中,脚本可以通过contentWindow属性访问包含的HTML页面的窗口对象。contentDocument属性指向iframe中的document元素(相当于contentWindow.document),但IE8之前的ie版本不支持。
msdn
此页面或框架包含的文档
中新增。
此属性在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
你会得到身体本身。
在所有浏览器中都支持,只做了一个小小的修改:对于Internet Explorer使用
myFrame.contentWindow.document
享受,Nili
- 防止Iframe窗体在新窗口中打开
- 将样式表插入iframe
- 在Twitter上用ie9中的空白src访问iframe的contentWindow
- 使用jQuery从原始页面内容创建iframe
- Highslide(iframe的侦听器)
- iframe正在添加标签,需要删除它们
- 通过javascript/html访问twitter共享iframe
- 如何在Facebook上的iframe应用程序中使后退按钮返回到上一页
- 如何使用Angular动态添加iframe-src
- HREF within an IFrame with JQuery
- Working of an iframe
- Input text to a link within an <iframe>
- target refreshing an iframe
- $.fn.submit() event don't trigger inside an <iframe&g
- Accessing an iframe
- Flow HTMLElement.querySelector returning an iframe
- Adding an iframe by JAVASCRIPT
- jquery .css() within an iframe
- Hyperlinking an iFrame?
- contentDocument for an iframe