UPDATE
Теперь кажется, что это происходит только в первом случае я описал, когда вкладка Extensions перегружается и новая вкладка открыт. Возможная ошибка?chrome.runtime.onConnect.addListener() не работает на начальной вкладке хромированной
Я настраиваю расширение chrome с помощью страницы background.js и content-script.js.
Эти два соединения друг с другом через порт. Теперь, когда он работает, порт становится активным в фоновом режиме каждый раз, когда вкладка активируется или обновляется, а контент-скрипт прослушивается через chrome.runtime.onConnect.addListener()
(который возвращает порт).
Это прекрасно работает. За исключением двух (аналогичных) случаев:
- Когда расширение загружается на странице Инструменты> Расширения и создается новая вкладка.
- На новой вкладке после закрытия и перезапуска Chrome.
Я есть журналы, которые показывают, что в этих случаях background.js делает инициализировать порт ... но сценарий содержание не получает его по какой-то причине.
Это основы того, что я делаю:
background.js
// When a tab gets activated
chrome.tabs.onActivated.addListener(function(tab) {
port = chrome.tabs.connect(tab.tabId, { name: "fh-ext-messenger" });
console.log(port)
initPortListener(port);
});
// When a tab is updated
chrome.tabs.onUpdated.addListener(function(tab) {
port = chrome.tabs.connect(tab, { name: "fh-ext-messenger" });
console.log(port)
initPortListener(port);
});
content.js
chrome.runtime.onConnect.addListener(function(port) {
console.log(port);
// ...
}
Любые идеи о том, почему это Безразлично» t на начальной вкладке?
Сценарии содержания ** не ** удаляются, когда расширение перезагружается или дезактивируется. Что происходит * происходит, так это то, что API расширения, связанный с скриптом содержимого, недействителен. –