0

たとえば、ある URL から別の URL に移動したときや、document.reload(true); を呼び出したときなど、window.document は頻繁に変更されます。

ドキュメント自体には、完全な readyState と、変更を追跡するための readystatechange イベントがあります。ただし、readyState イベントのドキュメントに addEventListener を配置し、ドキュメントが更新されると、addEventListener は存在しなくなり、メソッドが呼び出されることはありません。

そのため、window オブジェクトでドキュメントが更新されるたびにアタッチするのが好きです。それで、それを検出する方法はありますか?

4

2 に答える 2

3

各ページが読み込まれるたびにスクリプトがイベント ハンドラーを再インストールできるように、すべての Web ページに独自の JavaScript を配置するか、読み込み時にすべてのページを監視できるブラウザー プラグインからこれを行う必要があります。

ある程度定義上、新しいページが読み込まれるとページのすべてのスクリプトがクリアされるため、あるページのスクリプトを次のページに残すことはできません。

もう 1 つのアイデア: 対象のすべてのページが同じドメインと自分のドメインにある場合、子フレームを定期的に監視し、ドキュメントが変更されるたびにイベント ハンドラーをリセットし続ける親フレームを持つことができるかもしれません。ただし、同一生成元ポリシーの安全制限により、これはすべてのフレームが同じドメインにある場合にのみ機能します。

于 2012-04-11T08:07:02.983 に答える
0

現在のブラウザーを対象としており、従来のサポートを気にしない場合は、History API を確認してください。これにより、ユーザーに新しいページに移動するように見せることができます (アドレス バーの URL が変更され、戻る/進むが表示されます)。 JavaScript コンテキストを更新せずに想定どおりに動作するようにします。

ここでデモを参照してください: http://html5demos.com/history

詳細については、https ://developer.mozilla.org/en/DOM/Manipulating_the_browser_history をご覧ください。

于 2012-04-11T08:44:34.107 に答える