2009-05-08 1 views
2

ユーザーがページを離れるときに何かを思い出させる必要があり、それをwindow.onUnloadイベントで処理できます。 しかし、ユーザーがページ上でフォームを送信するか、ナビゲーションリンクをクリックしてナビゲートしているかどうかを確認する必要があります。 私はフォームのonSubmitイベントを使ってフラグを設定し、window.onUnloadイベントでそのフラグをチェックすることができますが、どのイベントが最初に発生するのか不明です。Javascript:ユーザーがフォーム送信または単純なリンクをクリックしてナビゲートしているかどうかを確認します。

+3

テストをして最初に何が起きたらいいのですか? – svinto

答えて

5

は、あなたが実際にそれがform.onSubmitイベント火災が最初のように私はフラグを使用することができることが判明し

window.onbeforeunload = function (e) { 
    var e = e || window.event; 

    // For IE and Firefox 
    if (e) { 
    e.returnValue = 'Are You Sure?'; 
    } 

    // For Safari 
    return 'Are You Sure?'; 
}; 
+0

私はそれが少し古いと知っていますが、[このソース](https://developer.mozilla.org/en/DOM/window.onbeforeunload)は、この機能はFirefox 4以前のものだと説明しています。 – arin

0

window.onbeforeunloadたいです。 FirefoxとSafariでのみこれを確認しました。

+0

更新時にonsubmitは起動しませんページをクリックして、新しいURLを入力します。作業の損失を防ぐために、前もって負荷をかけてください。ちなみに、それが正しく動作するためには、Chad Grantが記述したように、addEventListener –

0
var isRefresh = true; 
window.onunload = function() { 
    alert('the page was ' + (isRefresh == false ? 'NOT ' : '') + 'refreshed'); 
} 
$('a').live('click', function() { isRefresh = false; alert('a link was clicked'); }); 
$('form').bind('submit', function() { isRefresh = false; alert('form was submitted'); }); 

How to capture the browser window close event?に基づく。私はリフレッシュロジックを追加しました。

関連する問題