1

私はjavascriptを書くのが初めてで、ここで私がやっていることやしようとしています。ページ変更を検出するJavascriptコード? (たぶんAJAX経由)

ページが読み込まれると(window.onload)、JavaScriptのコードはページ内のすべてのフォームを通過し、特定の「onchange」メソッドをそれらに付加します。これは、ページ上の他のフォームを読み込むためにページが動的に更新される場合を除いて、インターネット上のほとんどのWebサイトで正常に動作します。このようなイベントを検出して機能を再実行するにはどうすればよいですか?例えば

Facebookのニュースフィードには、投稿されたすべての異なるステータス/リンクに関連付けられているフォームの束を持っています。私のコードはそれらを通り、リスナを接続します。しかし、あなたがページを下っていくと自動的に更新され、より多くのステータス/リンク/その他が表示されます。 (または、あなたは "古い投稿"リンクをクリックします) - しかし、今、私のjavascriptコードは再びグローバルに実行されていません。

とにかくできますか?ありがとう。

編集:私はブラウザの拡張機能を書いています。

+0

ブラウザ拡張機能を作成している場合は、その点に注意する必要があります。そうでなければ、私はあなたのスクリプトがどこで使われているかについてかなり混乱しています。 – Pointy

+0

ああ、申し訳ありません...私はブラウザの拡張機能を書いています。 – PixelPerfect3

+0

あなたは何をしようとしているのかよく分かりません。突然変異イベントを検出するために、[jQuery突然変異イベントの議論](http://forum.jquery.com/topic/mutation-events-12-1-2010)。単純に見えません。 –

答えて

4

.live()

$(document).ready(function() 
{ 
    $(document).live("onchange",function() 
    { 
     // blah? 
    }); 
}); 
+0

ああ、それは私が探しているようだ...ありがとう、束。試してみる。新しいオブジェクトがhtmlファイルに追加されるたびに関数をアタッチするようです。 – PixelPerfect3

+0

これで、あるクラスに「生きている」関数をつけているようです。例えば、その関数を「入力」オブジェクトに付けることができます。$(document).getElementsByTagName( 'input')。live( 'クリック、function(){ //ライブハンドラが呼び出されました }); – PixelPerfect3

+0

@ PixelPerfect3:jQueryセレクタ(http://api.jquery.com/category/selectors/)を見てください。しかし、あなたの質問に答えるために、あなたはちょうど$( "input")をやっていました。live( "click"、function(){});あなたは空想を得ることさえできますし、 "私はすべてのタイプの入力の入力をしたい"、彼らはその$( ":submit")のセレクタを持っています。 – Pandincus

関連する問題