Я пытаюсь создать «сложное» расширение для 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
Я ожидаю, что смогу получить доступ к моим фоновым функциям со своих страниц переднего плана (как страницы действий, так и страницы параметров).
Заранее спасибо!