我使用附加组件构建器构建具有基本功能的附加组件:
- 从页面获取评论 (A) http://youtube.com
。
- 调用 Web 服务器处理此文本 (A) 并返回 json
- 将 (A) 替换为 (B) 并显示给用户
我对服务器的请求有问题(请参阅浏览器控制台有很多行):
GET http://localhost:8084/Test/Test [HTTP/1.1 200 OK 8ms]
JSON.parse unexpected end of data fire fox addon.
但最后一个请求是成功的。而且我的代码不会更改注释,因为它在请求响应之前更改了。
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"
});
数据/元素-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"}