- ベストアンサー
ウインドウを閉じた時子ウインドウを開きたい
JavaScriptでいいのですがウインドウを×の閉じるボタンで閉じられた時別ウインドウを開きたいのですが可能なのでしょうか? よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんにちわ。 >onunload='closeEvent()'を使うとIEではポップアップとしてダイアログがでるじゃないですか。 >そのあたりを回避できないですか? これはどんな状況を指していますか? JavaScriptでwindow.openで開かれるウィンドウは「ダイアログ」では無く「ウィンドウ」なので・・・ 1.ウィンドウの「×」ボタンが押された場合のみ動作させたい。 他のページ移動のリンクの際等には別ウィンドウを表示させたくない。 という意味で言われているのか 2.ダイアログのようにツールバーなどの状況が通常のウィンドウと異なってしまう ということを言われているのでしょうか? 1の場合についてはonunloadが「documentのオブジェクトが破棄されるタイミング」という動きなので、他のリンクなどを押した場合に別の変数をフラグとしてセットして、それがセットされていれば、別ウィンドウを表示しない・・・というような回避策が必要でしょう。 (×ボタンそのもののイベントは拾えなかったはずですから・・・非表示にする制御もできませんし) 2の場合については(akanekorさんサンプルに修正を加えたソース) -------------------------------------------------- <html> <head> <script type="text/javascript"> function closeEvent() { document.all["LINK_ID"].click(); } </script> </head> <body onunload='closeEvent()'> aaaa <A HREF="" ID="LINK_ID" TARGET="_blank"></A> </body> </html> -------------------------------------------------- のようにダミーでリンクを作成しておき、それに対しclickイベントを発生させれば、デスクトップなどからIEを立ち上げたのと近い状態でウィンドウを表示させることができます。(簡単にIEでのみしかテストしてないので・・・)
その他の回答 (3)
- perse
- ベストアンサー率74% (113/152)
>ポップアップとしてダイアログがでる というのがポップアップブロックのメッセージだとしたら 使う側の設定なのでどうしようもできません。
- akanekor
- ベストアンサー率52% (102/194)
ちなみにNo1がポップアップ風になるのは、 window.openの設定の問題です。 サンプルだと省いてるんですよ、。見づらいし、面倒だし、(=w=; ホントは strSizeMsg ="toolbar=yes,titlebar=yes,status=yes,scrollbars=yes,"; strSizeMsg +="directories=yes,hotkeys=yes,location=yes,menubar=yes,personalbar=yes,resizable=yes"; window.open("http://www.infoseek.co.jp/","test",strSizeMsg); こんな感じにオプションいっぱい入れます。 で、このやり方だと、 現状にスタイルを合わせたいのなら、strSizeMsgの文字列作成時に編集する必要があります。。 (window開いた後、スタイル合わせる手もあります。) まあ、どちらにしろ面倒です。 「複数ウィンドウ」を開く事が無く、「子ウィンドウを開きたい」、 事にこだわりが無いなら、Math_Mathさんのやり方の方が楽です。
- akanekor
- ベストアンサー率52% (102/194)
アダルトサイトなんかでよくやってる処理ですね、(=w=; 閉じるイベントは"onunload"で拾えるので、 そのタイミングで、ページを開くイベントを発生させると出来ます。 サンプル <html> <head> <script type="text/javascript"> function closeEvent() { window.open("http://www.infoseek.co.jp/","test",""); } </script> </head> <body onunload='closeEvent()'> aaaa </body> </html>
お礼
onunload='closeEvent()'を使うとIEではポップアップとしてダイアログがでるじゃないですか。 そのあたりを回避できないですか?