小编Lam*_*mmy的帖子

iframe中的Javascript window.opener

我试图使用弹出窗口的脚本文件中的window.opener引用来访问弹出窗口的开启器.

请考虑popup.html中包含的以下脚本:

http://localhost/test/popup.html

<script>
    alert(window.opener.test_dom);
</script>
Run Code Online (Sandbox Code Playgroud)

如果不涉及iframe,我们会看到来自popup.html的警告消息:

http://localhost/test/base.html

 <html>
  ...
  <script> 
      var test_dom = 'test_dom';
      var popup = window.open("http://localhost/test/popup.html",...
  </script>
 </html>
Run Code Online (Sandbox Code Playgroud)

存在3个文件时存在问题..一个包含iframe的容器页面,从iframe中启动弹出窗口.当弹出窗口出现时,这不会显示警告消息:

C:\ TestContainer\container.html

 <html>
  ...
  <iframe src="http://localhost/test/base.html">
      <script> 
          var test_dom = 'test_dom';
          var popup = window.open("http://localhost/test/popup.html",...
      </script>

  <iframe>
 </html>
Run Code Online (Sandbox Code Playgroud)

也许这是一个安全限制?AFAIK base.html和popup.html属于同一个域,因此我认为没有理由这样做.是否还有其他方法可以通过popup.html脚本中的其他DOM属性访问opener?我已经坚持了一天了.

除了对开启者的引用之外,其他一切似乎在所有脚本中都按预期工作.

使用IE 11.

任何帮助表示赞赏!

javascript iframe dom popup

2
推荐指数
1
解决办法
6339
查看次数

标签 统计

dom ×1

iframe ×1

javascript ×1

popup ×1