19

$(document).ready()ページ上のフォームにいくつかの変更を加えるjQueryを含むPHPページがあります。これはうまくいきます。しかし、このページに来て別のページに行き、ブラウザから「戻る」を押してこのページに戻ってきた場合、$(document).ready()機能がまったく実行されていないようです。これは FF と Chrome で発生しています。

document.readyユーザーがブラウザの戻るボタンを押して私のページに来た場合でも実行できる方法はありますか?

4

2 に答える 2

20

私はまったく同じ問題を抱えていました。@Alfabravoのリンクは、ここで私を大いに助けてくれました: https://stackoverflow.com/a/12648785/679240

実際に必要なのは、ユーザーがページに入ったとき、または戻るボタンからページに到達したときにクリーンアップを行うことだったので、以下のコードは私にとっては十分に機能しました。

$(window).on('pageshow', function(){
    console.info('Entered the page!');
});

最初にページに入ったときではなく、戻るボタンからページに到達したときを具体的に検出する必要がある場合は、少し状態を制御する必要がある場合があります。上記のリンクが役立つ場合があります。

于 2018-01-11T18:36:53.090 に答える
3

私の使用例は、戻るボタンを押すとreadyイベントが発生し、処理関数が正常に実行されることです。

それにもかかわらず、ページ データの一部がまだ古くなっていることがわかりました。

console.log()すべての関数が実際に呼び出されていることを主張するために、いくつかの s を入れました。

私の特定の状況では、ページが読み込まれると、サーバーからデータを読み込むために AJAX が呼び出されます。実際、キャッシュされていたのは API からの応答であることがわかりました!!!

もちろんそうでした!

私の解決策は簡単でした。

新しく生成されたタイムスタンプを追加しました

new Date().getTime();

AJAX 呼び出しの URL へのクエリ パラメータとして使用すると、返されたデータは新鮮なものでした。

于 2018-03-22T22:00:27.580 に答える