2009-07-30 7 views
1

JavaScriptを使用してウィンドウを開くと(window.open()など)、開いたウィンドウのハンドルを使用して、変更したウィンドウのURLを通知する方法がありますか?例えば、私は一般的に、このような何かを行うことができるようにしたい:JavaScriptが開いているウィンドウの場所が変わったときを検出することはできますか?

<script type="text/javascript"> 

    function openNewWindowAndNavigateTo(url) 
    { 
     var w = window.open(url, "myWindow"); 
     w.addEventListener("locationChange", handleLocationChange);  
    } 

    function handleLocationChange(e) 
    { 
     alert(e.sourceWindow.newLocation); 
    } 

</script> 

<a onclick="openNewWindowAndNavigateTo('SomeDocumentIAuthored.html')">Go</a> 

それはブラウザ固有の(これは単に例証的目的のためである)だとしても、これさえ可能ですか?もしそうなら、どうですか?両方のドキュメントが同じドメインに存在すると仮定して、それを行うことはできますか?

<script type="text/javascript"> 
    window.opener.notifyOpened(window.location.href + ' just loaded'); 
</script> 

そうでない場合は、なし:

答えて

2

両方のドキュメントが同じドメインに住んでいるとあなたのコントロール下にある場合は、新たにロードされた文書を持っている必要がありますが、それだけでロードされた親ウィンドウを通知するスクリプトを発します。ブラウザでの操作は、JavaScriptサンドボックスの範囲外です。明らかに、私が上で実証したことを行う上でよりエレガントで頑丈な方法がありますが、それは全体的な関係を得ています。

+0

ええ、それは完全に意味があります - それは私が恐れていた答えですが。 ;)迅速な対応に感謝します! –

関連する問題