首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问browser.runtime.getBackgroundPage()中的变量

访问browser.runtime.getBackgroundPage()中的变量
EN

Stack Overflow用户
提问于 2019-06-09 11:09:40
回答 1查看 550关注 0票数 1

我目前正在构建一个以create-react-app为基础的浏览器扩展,尝试使用getBackgroundPage()而不是消息传递API来在后台脚本(我定义了3个)和新的选项卡页面之间进行通信,但似乎在新的选项卡页面中调用browser.runtime.getBackgroundPage()会返回一个窗口对象,而不会将后台脚本中的任何函数或变量作为窗口属性附加。

下面返回"variable not defined“错误和"page.foo() is not a function”。

代码语言:javascript
复制
// background_3.js

var test = [];

// Some stuff so webpack doesn't get rid of the unused variable.
for (let i = 0; i < 10; ++i) {
    test.push(i);
}

function foo() {
    console.log("foo");
}
代码语言:javascript
复制
// New Tab React page
import browser from "webextension-polyfill";

browser.runtime.getBackgroundPage()
    .then(page => {
        console.log(page.test);
        page.foo();
    });

我是不是做错了什么?我应该只使用消息API吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-09 11:45:11

原来,webpack正在将我的后台脚本包装在其他一些函数中,这就是破坏东西的地方。您可以像wOxxOm建议的那样,只需执行window.foo = foo操作,就可以手动将内容附加到背景脚本中的窗口对象。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56511694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档