web-dev-qa-db-ja.com

history.back(); $(document).ready();をトリガーしません。

$(document).ready()を使用してインターフェースを構築するWebページがあります。次に、ユーザーは子ページに移動し、元のページに戻るには、ブラウザーの「前へ」ボタンまたはページ内の「戻る」ボタンを押して、history.back();をトリガーします。元のページに戻ると、$(document).ready()がトリガーされていないため、ページに情報がありません。

それが「実際の負荷」であるかのように自動的にトリガーする方法はありますか?

ありがとうございました!

編集

アラートをその中に配置すると、アラートはポップされますが、readyイベントの一部が欠落している場合のように、インターフェイスに何かが欠落しています。調査中...

編集2

document.readyのhahahahahaI clickチェックボックスがオフになっているはずです。このページに「戻る」と、チェックされているので、re clickするのでチェックが外されます。

申し訳ありませんが、これは完全に私の悪いです:(

18
Sirber

この問題の簡単な解決策は、代わりに「onpageshow」を使用してください。

window.onpageshow = function(event) {
    //do something
};
12
stonyau

ユーザーがBackボタンを使用してナビゲートし、ページの完全なリロードが必要な場合は、ページのNO-CACHEポリシーを設定できます。

このようにして、ブラウザはBackボタンを使用しても、サーバーからページを強制的に再読み込みします。

7
Paulo Santos

1.)ページの下部にスクリプトを配置します。
2。)最後のスクリプトタグでプラグインなどを実行します。
3。)onDomReady実装はまったく使用しないでください。冗長です。

人々はonloadまたはondomreadyに非常に慣れているので、スクリプトをページの下部に配置しても、ポーリングしてhtmlが利用可能かどうかを確認しなくても、実質的に同じことができるという事実を見落としています。

さらに、スクリプトがhtml/cssレンダリングもブロックしないため、これも良い習慣です。

OnDomReadyまたはonLoadの実装に依存しないことで、多くの問題が解決されます。

3
BGerrissen

非常に興味深い質問です。ページがフォーカスされたとき、または同様のイベント/関数を再トリガーする必要がある場合があります。 「イベントの再トリガー」が適切かどうかを追跡するために、フラグ変数を保持する必要がある場合もあります。

1
Dutchie432