アドオン ビルダーを使用して、基本的な機能を備えたアドオンをビルドします。
- ページからコメント (A) を取得しますhttp://youtube.com
。
- このテキスト (A) を処理する Web サーバーを呼び出し、json を返します
- (A) を (B) に置き換えて、ユーザー
に表示します サーバーへのリクエストで問題が発生しました (ブラウザー コンソールには多くの行があることを参照してください)。
GET http://localhost:8084/Test/Test [HTTP/1.1 200 OK 8ms]
JSON.parse unexpected end of data fire fox addon.
しかし、最後のリクエストは成功です。私のコードは、 request response の前に変更されたため、コメントを変更しません。
lib/main.js
var tag = "p";
var data = require("sdk/self").data;
var pageMod = require("sdk/page-mod");
pageMod.PageMod({
include: "*.youtube.com",
contentScriptFile: data.url("element-getter.js"),
contentScriptWhen: "end"
});
data/element-getter.js
var target = document.querySelector('#watch-discussion');
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
var commenttexts = document.querySelectorAll(".comment-text");
for (var i = 0; i < commenttexts.length; ++i) {
var url = "http://localhost:8084/Test/Test";
var request = new XMLHttpRequest();
var cm = " hello ";
request.open("GET", url, true);
request.onload = function () {
var jsonResponse = JSON.parse(request.responseText);
var status = jsonResponse.status;
cm = status;
};
request.send();
commenttexts[i].innerHTML = cm;
}
});
});
var config = { childList: true };
observer.observe(target, config);
json サーバーの戻り値:
{"status":"1","label":"true"}