我正在从我的主页打开一个弹出窗口,代码如下:
<a href="http://external.domain.tld/"
onclick="window.open(this.href, '_blank',
'width=512,height=512,left=200,top=100');return false">
Open popup
</a>
这很好用,但我的问题是弹出窗口中加载的文档有权更改打开器窗口的位置。这甚至在弹出窗口中的文档来自不同域时也有效。它没有读取位置的权限,但可以更改位置。我不想要那个。我希望弹出窗口与我的主页完全断开。
即使没有 JavaScript,它也不起作用。当我使用该target="_blank"
属性在新选项卡中打开另一个页面时,仍然允许此选项卡导航到opener
窗口并更改其位置:
<a href="http://external.domain.tld/" target="_blank">
Open in new tab
</a>
这是打开的文档中不应允许的代码:
<script>
opener.location.href = "http://badsite.tld/";
</script>
你可以在这里看到一个现场演示。单击两个链接之一以在弹出窗口或新选项卡中打开另一个页面,然后在打开器窗口中加载第三个页面。这就是我试图阻止的。
有什么技巧可以用来断开打开器窗口和打开的窗口之间的连接吗?理想情况下,打开的窗口根本不应该知道它是由任何其他窗口打开的。