Chrome扩展程序:后台页面中缺少类实例

时间:2019-03-23 19:43:49

标签: javascript google-chrome google-chrome-extension

我正在尝试为google chrome构建“复杂”扩展程序,实际上该扩展程序实际上是构建的(JSLoader),并且该扩展程序中使用的结构已在几个月前开始工作。现在我想更新它,但是由于chrome.runtime.getBackgroundPage()的某些奇怪行为,我的弹出窗口都没有显示。我在manifest.json中声明了几个“模块”,如下所示:

"background": {
        "scripts": [
            "dependencies/dep1.js",
            " ... ",
            "bg/module1.js",
            "bg/module2.js",
            " ... "
            "bg/background.js"
        ]
    },

然后在我的背景页面中,我以以下方式实例化每个模块:

this.module1 = new Module1(this);
this.module2 = new Module2(this);

其中module1和module2分别定义功能(或旧样式类)Module1和Module2。然后从我的弹出窗口中,具体是从我正在执行的扩展的页面操作和选项页面中:

chrome.runtime.getBackgroundPage(page => {

    ...
    /* this fails and says that module1 is not defined */ 
    page.module1.callSomeFunctionOnModule1() 
    ...

})

如上所述,这曾经在几个月前起作用,而且我不知道为什么不再定义我的实例,实际上在后台页面中定义的功能都不可用。有什么理由我不能再这样做了吗?从页面操作和选项页面在后台调用函数的方式是什么?

我不知道该怎么做...我的函数不再在前台定义了。.我试图调用chrome.extension.getBackgroundPage而不是没有好运的chrome.runtime.getBackgroundPage。

您可以在https://github.com/szz-dvl/JSLoader/tree/chrome

中找到完整的扩展名

我希望能够从前景页面(页面操作和选项页面)访问我的后台功能。

谢谢!

0 个答案:

没有答案