2009-04-01 5 views
1

ボタンをクリックすると開くポップアップウィンドウが表示されます。ユーザーが子ウィンドウ内の特定のアイテムを検索すると、子ウィンドウ内のwindow.opener.locationを使用して親ウィンドウの場所を切り替えようとします。親ウィンドウは常に同じWebサイト内にとどまります。これは、Firefox 3.07 & 3.1 B3、およびIE 7 & 8で正常に動作します。しかしクローム2.0B(DEV支店)と(Windows用)のSafari 4のベータ版では、私はこの奇妙なエラーが発生します。ここではSafari 4 BetaとChrome 2でエラーが発生しました

Unsafe JavaScript attempt to initiate a navigation change for frame with URL

は奇妙です事、Safariでそれが動作することはありませんが、Chromeでそれがあれば動作します:

*Child window is same protocol(HTTP/HTTPS) as the text i am using setting window.opener.location
*Parent window and child window are the same protocol(HTTP/HTTPS)

は、編集:親と子ウィンドウの両方がHTTPSである場合にオペラではそれが唯一の作品...

答えて

0

これは、WebkitとOperaのimplimentとIEとFFが無視するクロスサイトスクリプティングのセキュリティ制限のようです。

1

それが方が良いでしょう親ウィンドウに値を返すと、親ウィンドウにthにリダイレクトされます正しい場所?それは私にはきれいだ。

searchterm = window.open(...); 
+0

これは良い考えです。私はいくつかの手品をして、私が働く何かを得ることができるかどうかを見てみましょう。 –

+0

window.open()のドキュメントからの戻り値は、ウィンドウ自体のハンドルです。リダイレクトを行うオープナーで関数を呼び出すほうが簡単でしょう。例えばwindow.opener.funcName( '特別な値');オープナーウィンドウは必要に応じてリダイレクトされます。 – scunliffe

+0

もう1つの制限私はクロスサイトスクリプティングです...子ウィンドウがHTTPSで、親がhttpである場合、Safariは私にエラーを返し、window.open()にしようとするとポップアップとしてブロックします。 –

関連する問題