javascript - 注入(inject)脚本错误 : Script returned non-structured-clonable data on Firefox extension

标签 javascript firefox-addon firefox-addon-webextensions

我想从 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/

相关文章:

javascript - 类型错误 : browser is undefined (Web Extension Messaging)

javascript - onclick v 没有 onclick;如何在不点击的情况下获得结果

firefox-addon - 使用 SDK 通过 firefox 无重启扩展添加新的搜索引擎

ubuntu - 后台脚本中的 window.state = 'fullscreen' 应该可以工作吗?

火狐扩展 : How to display a long description in about:addons

firefox-addon - Firefox附加sdk是否允许直接修改http响应字节流?

javascript - 异步/等待不工作?

c# - 单击gridview外部的按钮获取gridview的rowindex

javascript - AngularJS 是否像 RequireJS 一样支持 AMD?

javascript - 如何从 aspx 文件中的脚本将值设置为 script(.js) 文件中的变量