我想从 firefox web 扩展注入(inject)脚本到 tabId thought browser.tabs.executeScript API。
我有一个 Browser.js 文件
MyFunc.Browser = (function() {
var self;
function Browser() {
self = this;
}
Browser.getExtensionURI = function() {
return "chrome-extension://";
};
return Browser;
})();
并执行脚本函数:
var executing = browser.tabs.executeScript(tabId, {
file: "js/contentscripts/Browser.js"
});
executing.then(function(results) {
console.log("url: " + tabUrl + ", result", results);
}, function(error) {
return console.log("Inject scripts error: " + error);
});
但是脚本无法注入(inject)标签并显示错误。
我该如何解决?
list 文件:
{
"name": "abc",
"background": {
"page": "background.html"
},
"browser_action": {
"default_icon": "icons/icon_19.png",
"default_popup": "login.html",
},
"content_scripts": [
{
"web_accessible_resources": [
"js/contentscripts/Browser.js",
],
"js": [
"js/contentscripts/ContentScript.js"
],
"matches": [
"file://*/*",
"http://*/*",
"https://*/*"
],
"run_at": "document_end",
"all_frames": true
},
{
"js": [
"js/contentscripts/Browser.js",
],
"matches": [
"file://*/*",
"http://*/*",
"https://*/*"
],
"run_at": "document_start",
"all_frames": true
}
],
"icons": {
"16": "icons/icon_16.png",
"19": "icons/icon_19.png"
},
"incognito": "spanning",
"permissions": [
"activeTab",
"tabs",
"http://*/*",
"https://*/*",
"<all_urls>"
],
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'",
"version": "1.1.16"
}
最佳答案
在“js/contentscripts/Browser.js”文件中,添加“undefined;”到最后一行。
该值将返回到“executing.then”第一个回调参数的结果
引用:https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/tabs/executeScript#Return_value
关于javascript - 注入(inject)脚本错误 : Script returned non-structured-clonable data on Firefox extension,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44567525/