1

Firefoxアドオンを開発しています。基本的に、ブラウザにロードされた後にHTMLドキュメントを解析します。フォームの送信、リンクのクリックなどのイベントをキャプチャできます。ただし、HTMLページがAJAX呼び出しを介してサイレントに送信され、部分的に更新されると、キャプチャできません。そのため、WebページのAJAXリクエストをトラップするにはどうすればよいですか。アドオンでの応答?

4

1 に答える 1

3

AJAX呼び出しの検出を試みることはできますが、実際に検出したいのはページの変更です。そのためにミューテーションオブザーバー(Firefox 14で導入)を使用できます。例えば:

var observer = new MutationObserver(onDocumentChange);

// We are interested in elements being added/removed and text changes, not in
// attribute changes however.
var config = { attributes: false, childList: true,
               characterData: true, subtree: true };

// Start observing the content page's document
var doc = gBrowser.contentWindow.document;
observer.observe(doc, config);

この関数onDocumentChangeは、コンテンツドキュメントに変更が加えられるたびに呼び出されます。

于 2012-08-31T08:35:16.910 に答える