0

ユーザーが現在のブラウザウィンドウを閉じようとすると、確認ボックスが表示されるというシナリオがあります。彼がウィンドウを閉じることを確認した場合、このウィンドウは閉じて、別のURLで新しいウィンドウを開く必要があります。

次のコードを使用して確認ボックスを表示しようとしましたが、ユーザーが現在のウィンドウを閉じることを確認した場合、新しいウィンドウを開く方法がわかりません。

var preventUnloadPrompt;            
$('a').live('click', function () { preventUnloadPrompt = true; });
$('form').live('submit', function () { preventUnloadPrompt = true; });
$(window).bind("beforeunload", function () {
    if (preventUnloadPrompt)
    { return; }
    else {
        return confirm("quit??");            
    }
});

どんな種類の助けも大歓迎です。ありがとう。

4

2 に答える 2

1

ウィンドウが閉じると、すべて、表示されているかどうかに関係なく、そのウィンドウに関連付けられているすべてのものが...保留中のjavascriptコード、画面上のものなどが消え、実行中のスクリプトが含まれます-poof-gone nada、基本的に、実行中のスクリプトをキャンセル、中止、停止、停止します。

時間的順序付けでは、ウィンドウを閉じることを除いて、他のすべてのユーザーが開始した操作を最初に完了する必要があります。

例:

javascript:
void(window.open("data:text/html,
<html>
<a href=\"javascript:window.open('about:blank');self.close();void(0);\">open & close</a> this link does both<br/>
<a href=\"javascript:self.close();window.open('about:blank');void(0);\">close & open</a> this does close but open fails
</html>
"))

リンクは前処理することができますif(confirm("quit??")){ ... }

テスト済み:

window.navigator.userAgent =
Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:11.0) Gecko/20100101 Firefox/11.0

ブックマーク:
ユーザーが現在のウィンドウを閉じることを確認した場合、現在のウィンドウを閉じるときに新しいブラウザウィンドウを開きます

于 2012-10-03T18:54:25.960 に答える
-1
var answer = confirm("quit??");
if (answer){
    window.open("http://www.google.com/");
}
else{
// do something else
}
于 2012-07-28T16:00:10.347 に答える