我正在尝试这段代码:
// This is an active module of the goelvivek (10) Add-on
// This is an active module of the goelvivek (9) Add-on
var pageMod = require("page-mod");
var request = require('request');
pageMod.PageMod({
include: "*",
contentScriptWhen: "end",
contentScript: 'var doc_c=document.title;console.log(doc_c);var body_uri=document.URI;self.postMessage(body_uri);',
onAttach:function(body_c){
console.log("onattach");
var req = request.Request({
url:"http://google.com",
content:{
v:"1",
body:body_c
},
oncomplete: function (response){
console.log(response);
}
});
req.get();
}
});
但Firefox正在崩溃。为什么呢?
您可以在https://builder.addons.mozilla.org/addon/1021520/latest/
测试插件答案 0 :(得分:2)
最近的Nightly,这对我来说并没有崩溃。相反,它消耗大量内存并挂起,直到出现无响应脚本对话框。
挂起的原因是您希望body_c
的{{1}}参数是来自内容脚本的消息,但它是worker object,有很多子参考,甚至可能是用圆形的。
SDK的onAttach
有code将传递为Request
的对象转换为字符串,然后再发送到请求中。它应该递归地遍历对象,显然它会在你传入的worker对象上窒息。