iframe 的内容文档

发布于 2024-11-18 07:14:10 字数 100 浏览 4 评论 0原文

对于 iframe(甚至旧的“frame”元素),“contentDocument”到底代表什么?它相当于“html”元素还是“body”元素? 它有什么用? 所有浏览器都支持此属性吗?

What exactly does "contentDocument" represent for an iframe (or even the old "frame" element)? Is it equivalent to the "html" element or the "body" element ?
What is it's use?
And is this property supported across all the browsers?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

×眷恋的温暖 2024-11-25 07:14:11

contentDocument 是获取 iframe 或框架的 Document 对象的标准化方法。它与 iframe 中运行的 JavaScript 通过 document 访问的对象相同。

正如其他答案中所述,IE 直到版本 8 才支持它,但支持通过 contentWindow 访问 iframe 的 Window 对象。因此,获取 iframe 的 元素的跨浏览器方法是:

var iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
var iframeBody = iframeDoc.body;

请注意,如果 iframe 不是由与主文档相同的域提供的,则浏览器安全限制将阻止访问以这种方式或任何其他方式获取其文档对象。

contentDocument is the standardized way to get hold of the iframe or frame's Document object. It is the same object as JavaScript running within the iframe would access via document.

As noted in other answers, IE didn't support it until version 8 but did support access to the iframe's Window object via contentWindow. A cross-browser way of getting hold of an iframe's <body> element is therefore:

var iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
var iframeBody = iframeDoc.body;

Note that if the iframe is not served from the same domain as the main document, browser security restrictions will prevent access to its document object in this or any other way.

愁杀 2024-11-25 07:14:11

contentDocument 表示 iframe 的文档(DOM 对象)。它不等于 html 因为文档有自己的属性,但是如果您输入:

myFrame.contentDocument.body 

您将获得正文本身。

所有浏览器都支持它,只需稍作修改:对于 Internet Explorer,请使用

myFrame.contentWindow.document

Enjoy、Nili

contentDocument represents the document of an iframe (DOM object). It is not equivalent to html since documents have their own properties, however if you type:

myFrame.contentDocument.body 

You will get the body itself.

It is supported in all the browsers, with a tiny modification: for Internet Explorer use

myFrame.contentWindow.document

Enjoy, Nili

动次打次papapa 2024-11-25 07:14:10

w3.org

Document 类型的 contentDocument,只读,在 DOM Level 2 中引入
此框架包含的文档(如果有且可用),否则为 null。

MDN

从 DOM iframe 元素中,脚本可以通过 contentWindow 属性访问所包含 HTML 页面的窗口对象。 contentDocument 属性引用 iframe 内的 document 元素(这相当于 contentWindow.document),但 IE8 之前的 Internet Explorer 版本不支持。

msdn

此页面或框架包含的文档
此属性是 Windows Internet Explorer 8 中的新增属性

,因此要获取 body 元素的innerHTML,您可以使用

iframe.contentDocument.getElementsByTagName("body")[0]

iframe.contentDocument.body

在当今的浏览器中。

w3.org

contentDocument of type Document, readonly, introduced in DOM Level 2
The document this frame contains, if there is any and it is available, or null otherwise.

MDN

From the DOM iframe element, scripts can get access to the window object of the included HTML page via the contentWindow property. The contentDocument property refers to the document element inside the iframe (this is equivalent to contentWindow.document), but is not supported by Internet Explorer versions before IE8.

msdn

the document this page or frame contains
This property is new in Windows Internet Explorer 8

So to get the innerHTML of the body element you could use

iframe.contentDocument.getElementsByTagName("body")[0]

or

iframe.contentDocument.body

in todays browsers.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文