- 締切済み
IE8のwindow.opener.location.href動作について
宜しくお願い致します。 IE8のjavascript「window.opener.location.href」の動作がIE7から変わった様で、思い通りの動作をしなくなりました。 1、WEBサーバ側の親ウィンドウからWinXPにインストールしたローカルサーバ側のPHPスクリプトへwindow.openで子ポップアップウィンドウを開きます。 2、ローカルサーバ側の子ポップアップウィンドウで特定のプログラムを走らせ、WEBサーバ側の親ウィンドウへローカルサーバ側の子ポップアップウィンドウからwindow.opener.location.hrefで、親ウィンドウの表示ページを切り替える。 という動作をしていたのですが、IE8にアップデートしたら、ローカルサーバ側の子ウィンドウからWEBサーバ側のURLを切り替えると、別ウィンドウで開いてしまい、親ウィンドウが2ページに分かれます。 さらに、元の親ウィンドウはURLが変更にならず、新しく開いたページのURLだけ変わっています。 この動作をIE7と同じ様に、子ウィンドウから元の親ウィンドウのURLを変更させるにはどうすればよいのでしょうか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- sh_hirose
- ベストアンサー率66% (56/84)
>WEBサーバ上でのやり取りでは問題なく期待通りの動作をしてくれるのですが、子ウィンドウがローカルサーバ側という所に問題がある様なのです。 WEBサーバ側、ローカルサーバ側ってのがよくわからないのですが・・・。 もう少し詳しく構成を教えてもらえないですか? 親ウィンドウのURLはサーバにあるURL。 子ウィンドウのURLはクライアントにあるURL。 切り替えるURLはサーバ側またはクライアント側のURLってことですか?
- sh_hirose
- ベストアンサー率66% (56/84)
通常のHTML、JavaScriptではうまくいきましたよ? 見当違いだったらごめんなさい。 a.html <html> <head> <title>aaa</title> </head> <body> <input type="button" onclick="window.open('child.html');" </body> </html> b.html <html> <head> <title>bbb</title> </head> <body></body> </html> child.html <html> <head> <title>child</title> </head> <body> <input type="button" onclick="window.opener.location.href='b.html'" </body> </html>
補足
早速のご回答、誠にありがとうございます。 おっしゃるとおり、WEBサーバ上でのやり取りでは問題なく期待通りの動作をしてくれるのですが、子ウィンドウがローカルサーバ側という所に問題がある様なのです。 親ウィンドウはWEBサーバ、子ウィンドウがローカルサーバという環境で行った場合には、親ウィンドウがポップアップで複数表示されてしまいます。
補足
度々のご回答、誠にありがとうございます。 説明下手で大変申し訳ありません。 親ウィンドウと子ウィンドウの関係をURLとファイル名でご説明させて頂きます。 親ウィンドウのURL: https://hogehoge.jp/test/test.php 子ウィンドウのURL http://192.168.1.1/hoge/hoge.php 1、親ウィンドウtest.phpへアクセスすると、window.openで子ウィンドウhttp://192.168.1.1/hoge/hoge.phpを開く 2、子ウィンドウhoge.phpで一連のプログラムを完了した後、親ウィンドウのtest.phpへwindow.opener.location.hrefで表示されているページを別のページに切り替える このような動作を行うと、IE7では元々開いていたhttps://hogehoge.jp/test/test.phpページのURLが切り替わりました。 しかし、IE8にしてからは、もともと開いている親ウィンドウのhttps://hogehoge.jp/test/test.phpのURLが変わらず、新たにポップアップで別のページが開き、子ウィンドウのwindow.opener.location.hrefで指定したURLのページが開いてしまうという現象です。