0

私はこれを使用したいと思います:

window.onbeforeunload = function () {
    return "u sure?";
}

リフレッシュ、フォワード/バック イベントのみ。現在、このコードはすべてをキャッチします。リンクのクリックやフォームの投稿イベントをキャッチしたくありません。また、その関数内にすべてのコードを含める必要があるため、次のようなもの(疑似コード)があるのではないかと考えていました。

window.onbeforeunload = function () {
    if(it was not a click && it was not a form post)
       return "u sure?";
}

再考: .onbeforeunload を発生させたイベントを取得することは可能ですか?

4

1 に答える 1

1

私が考えることができる最も簡単な解決策はonbeforeunload、フォームの送信またはリンクのクリックでイベントのバインドを解除することです。

Array.prototype.forEach.call(document.querySelectorAll('form'), function (elem) {
    elem.addEventListener('submit', function () {
        window.onbeforeunload = function () {}
    });
});
于 2013-04-16T00:59:36.893 に答える