次のようなコードを使用して、メイン ページからポップアップを開きます。
<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>
ここでライブデモを見ることができます。2 つのリンクのいずれかをクリックして、ポップアップまたは新しいタブで別のページを開き、オープナー ウィンドウに 3 番目のページを読み込みます。それを防ごうとしています。
オープナーウィンドウと開いたウィンドウの間の接続を切断するために使用できるトリックはありますか? 理想的には、開かれたウィンドウは、他のウィンドウによって開かれたことをまったく認識しないようにする必要があります。