代码之家  ›  专栏  ›  技术社区  ›  user567879

运行firefox示例扩展时出现“browser is not defined”(浏览器未定义)错误

  •  -3
  • user567879  · 技术社区  · 6 年前

    我在GNU/Linux系统中安装了60.4.0ESR(64位)。当运行 find-across-tabs 分机,我出错了

    ReferenceError: browser is not defined[Learn More]
    find.js:1:5
    <anonymous>
    file:///home/username/webextensions-examples-master/find-across-tabs/find.js:1:5
    

    我能够正确地运行类似borderify的扩展

    1 回复  |  直到 6 年前
        1
  •  4
  •   tukan    6 年前

    我认为这个错误很明显。这里的问题是

    引用错误:未定义浏览器

    在:

    let backgroundPage = browser.extension.getBackgroundPage();
    

    它们可能引用了 mozilla.org docs . 您可以在那里测试这些示例,看看是否有错误。

    您可以直接在 popup . 例如:

    假设一个后台脚本定义了一个函数foo():

    // background.js
    
    function foo() {
      console.log("I'm defined in background.js");
    }
    

    在弹出窗口中运行的脚本可以这样直接调用此函数:

    // popup.js
    
    var page = browser.extension.getBackgroundPage();
    page.foo(); // -> "I'm defined in background.js"
    

    注: 问题是,如果您不使用隐私浏览模式,因为此功能不能与之一起使用。这是由于 this 缺陷。它总会回来的 null .