4

ユーザーがモバイル Safari で [戻る] ボタンをクリックしたときに、確認ダイアログ ボックスを表示する必要があります。長い申請書があり、ユーザーがページを離れる前に、申請書が記入/完了されていないことをユーザーに警告したいと考えています。ユーザーがリンクをクリックしてページを離れようとしたときのためにすべてを設定しましたが、ブラウザの戻るボタンにイベントを添付する方法を一生理解できません。onbeforeunloadiOS では動作しません。どんなヒントでも大歓迎です。

注: アラート ボックスは悪魔の産物だと認識していますが、そうするように言われました。

4

3 に答える 3

3

イベントのpersistedプロパティを確認できます。onpageshow最初のページ読み込み時に false に設定されます。ページが bfcache から読み込まれると (ユーザーが [戻る] ボタンで戻る)、true に設定されます。

window.onpageshow = function(event) {
    if (event.persisted) {
        alert("From back / forward cache.");
    }
};

何らかの理由で、jQuery にはイベントにこのプロパティがありません。ただし、元のイベントから見つけることができます。

$(window).bind("pageshow", function(event) {
    if (event.originalEvent.persisted) {
      alert("From back / forward cache.");
    }
};
于 2012-09-29T11:29:14.943 に答える
-1

Chromeなどのデスクトップブラウザでは、ページの離脱を傍受してメッセージを表示できます。そして、メッセージを表示する以外は何もできません。明らかな理由で、ブラウザが残りを実行しています。これがiOSでも機能する場合はDunno。

window.onbeforeunload = function () {
    return 'do you really wanna do that?'
}

http://jsfiddle.net/JAAZ5/

于 2012-07-31T17:28:37.067 に答える
-2

戻るボタンの制御は、どのブラウザーでも許可されていません。モバイル Safari も例外ではないと思います。

于 2012-07-31T17:22:33.320 に答える