contentDocument 和 contentWindow javascript iframe/frame 访问属性
Difference between contentDocument and contentWindow javascript iframe/frame access properties
- 这两个属性(contentDocument 和 contentWindow(之间有什么区别?
- 他们访问内容的方式是否有任何区别框架/iframe?
- 是否存在任何性能问题?
- 我应该使用
contentXXXXX.document.getElementsBy...
还是contentXXXXX.getElementsBy...
?
我一直在网络上搜索,但没有找到太多信息,在我做一个大研究之前,我想我可以问问堆栈溢出的伟大社区。作为评论,我正在做一个脚本来计算网页上的输入,访问所有级别的框架或 iframe,并将在框架/iframe 中找到的输入添加到全局计数中。所有内容都应该来自同一个域,所以我相信同源政策应该没有问题。对于脚本,我使用的是纯JavaScript no jQuery或任何框架/库,使jaja u_u生活更轻松。这是一个练习脚本,如果有人想看看代码,我会发布它,没问题。感谢任何花时间解释这一点的人!
我认为<iframe>
MDN文档很好地解释了它:
使用 DOM
HTMLIFrameElement
对象,脚本可以通过contentWindow
属性访问框架资源的window
对象。contentDocument
属性是指<iframe>
里面的文档,和contentWindow.document
一样。从框架内部,脚本可以使用
window.parent
获取对其父窗口的引用。对帧内容的脚本访问受同源策略的约束。如果脚本是从不同的源加载的,则脚本无法访问其他窗口对象中的大多数属性...
因此,您将使用contentWindow
与使用window
和contentDocument
相同的方式使用document
。
另请注意它与frames
属性的关系
window.frames[0]
和document.getElementsByTagName("iframe")[0].contentWindow
是一回事
所以这些陈述是正确的:
// the window property refers to itself https://developer.mozilla.org/en-US/docs/Web/API/Window/window
window.frames[0]
=== window.frames[0].window;
// the frames' window *is the same* as contentWindow
window.frames[0].window
=== document.querySelector("iframe").contentWindow;
// the frames' document *is the same* as contentDocument
window.frames[0].window.document
=== document.querySelector("iframe").contentDocument;
相关文章:
- 访问布局信息是否也会导致浏览器重排
- Javascript,访问一个主要对象模块模式中的每个对象
- 如何访问声音管理器2创建的声音对象
- 在Twitter上用ie9中的空白src访问iframe的contentWindow
- JavaScript Pub/Sub属性访问问题
- 从JavaScript访问struts操作中的属性
- 是否可以从父类访问子类的属性
- 如何访问fastOpt.js
- 访问JSON对象内部的数组元素
- 从模块内部访问Express装载路径
- 难以访问的JS环境中的语法错误
- 如何从对象的原型方法访问JavaScript对象属性
- 访问json数组中的对象
- 通过javascript/html访问twitter共享iframe
- Dojo:访问dijit.form.Select中单击的项目
- 为什么在这个网站上不能通过JS访问元素
- 从ng模板访问作用域
- 如何访问UIWebView'的子窗口上下文
- 使用Javascript获取Twitter访问令牌
- contentDocument 和 contentWindow javascript iframe/frame 访问属性