0

ユーザーがブラウザにアドレスを入力してWebサイトを離れ、returnキーを押すか、ユーザーが「x」ボタンをクリックしてブラウザを閉じるときに、しばらくの間javascript関数を実行しようとしています。

アンロードイベントを試しましたが、アラートを受信できません

これは私がしていることです:

$(window).unload(function () {
    alert("Are you sure?");
});

また

$(body).unload(function () {
    alert("Are you sure?");
});

アイデアが足りなくなってきました!

4

4 に答える 4

2

beforeunloadページがアンロードされたときに、unload イベントの前に発生するイベントをリッスンできます。

$(window).on('beforeunload', function(){
    // ...
})
于 2012-11-30T14:42:16.153 に答える
2

一部のブラウザー (Chrome など) は、unload イベント ハンドラーでアラートをブロックし、まさにこの種の迷惑なメッセージを防ぎます。console.log を試すか、ブレークポイントを設定して、アラートがないときにハンドラーがトリガーされるかどうかを調べます。

同様の行でSOの質問:

window.onunload が Chrome ブラウザで正しく動作しない。誰でも私を助けることができますか?

beforeunload ハンドラー (HT @undefined) で文字列を返すことによってのみアラートを渡すことができますが、ポップアップは一般的に悪く、ほとんどの人は make-this-thing- を解決するために最小限の処理を行うため、それも避けます。彼らが実際に箱の中身について考える前に、立ち去るオプション。

于 2012-11-30T14:43:05.037 に答える
1

window.onbeforeunloadで定義した関数が文字列を返す場合、そのメッセージとともに確認ナビゲーションプロンプトがポップアップ表示されます。

アラートは無視される場合があります!

window.onbeforeunload = function() {
    return "All unsaved data will be lost. Are you sure?";
};

一部のブラウザは、onbeforeunloadの処理方法が異なります。たとえば、最近のFirefoxは戻り文字列を無視し、標準のメッセージを表示するだけです。

于 2012-11-30T14:50:30.597 に答える
0
$(window).bind('beforeunload', function(){
    alert("Are your sure?")
});
于 2012-11-30T14:44:58.513 に答える