繁体   English   中英

window.frames 仅返回基本窗口

[英]window.frames returns only the base window

我正在尝试访问插入的 iframe 的window对象。 当我在检查中检查window.frames时,它是基础窗口的窗口对象而不是iframe之一,并且window.frames.length为1。如何访问iframes的窗口对象?

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Hello!</title>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="style.css">
    <script src="script.js" defer></script>
  </head>  
  <body>
      some contents
      <iframe src="iframe.html"></iframe>
  </body>
</html>

是的,这是一个令人困惑的......

根据规范,它返回window对象,就像selfglobalThis ,这显然是 Netscape 的遗物。 参考

对您来说重要的是这个window对象有一个.length属性,表示有多少子框架,然后您可以使用数字索引访问这些子框架的窗口。

例如window[0]应该返回您的 iframe 的窗口,但是在 StackSnippet 的 null 起源的 iframe 中,它只会抛出一个错误。

 console.log(window[0]);
 some contents <iframe src="iframe.html"></iframe>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM