如何查看window.length的iframes / frames NAMES?

时间:2018-02-23 20:29:47

标签: javascript

我正在开发一个有很多帧的项目。我知道window.length将返回“子浏览上下文”的数量,即帧和iframe,但如何查看这些列表并查看帧名称?例如,如果我想要的话,请特别注明其中一个,例如window.parent.frames["foo"] ..如果不知道我必须输入'foo',我怎么能看到帧名列表?每次我深入研究开发工具或其他东西中的窗口对象,然后展开“框架”对象,我似乎再次获得相同的“窗口”对象而不是框架列表......如果我继续向下钻取进入'帧'我递归地无处可去。

2 个答案:

答案 0 :(得分:1)

这取决于您使用的浏览器。

例如,如果您使用Firefox,则开发人员工具中有一个按钮,可以指向文档中的特定iframe。

enter image description here 请参阅:https://developer.mozilla.org/en-US/docs/Tools/Working_with_iframes

对于Chrome,有相同类型的功能

enter image description here

请参阅:https://developers.google.com/web/tools/chrome-devtools/console/

在javascript中:

如果iframe在同一个域 ,您可以访问子框架的窗口和文档,否则您将收到CORS错误

window.frames["frame_name"].contentWindow

如果HTML是:

<frame name="frame_name">...</frame>

要获得iframe列表名称:

for (var i=0; i < window.frames.length; i++) {
   console.log(window.frames[i].name);
}

答案 1 :(得分:1)

您可以遍历框架并查看/存储其名称:

for (var i = 0; i < window.parent.frames.length; i++) { 
  console.log(window.parent.frames[i].name)
}