Хорошо, я понял это! Ниже я объясню основную проблему, а затем решение.
Выпуск
В фоновом скрипте я хотел разрешить сохраненное значение в localStorage
, чтобы определить, открывается ли расширение как всплывающее окно, новое окно или новая вкладка. Переключение между окном и вкладкой работало, кроме случаев перехода из всплывающего окна. Если всплывающее окно выбрано, расширение откроется как всплывающее окно. Например, при переходе на новую вкладку расширение все равно будет открываться как всплывающее окно. Новое значение будет работать только после перезапуска расширения. Проблема была в барабанная дробь, пожалуйста :
chrome.browserAction.setPopup({popup: "index.html"});
.
Решение
Я не уверен относительно точной причины проблемы выше (и я не хочу просто говорить вещи, которые могут быть ложными или неточными на 100%), но простое решение заключалось в выполнении метода setPopup
на вкладка, а не браузер.
Сначала , в функции обратного вызова метода chrome.browserAction.onClicked.addListener
передается tab
.
chrome.browserAction.onClicked.addListener(function (tab) {
Второй , установите setPopup
для выполнения на вкладке, выполнив следующие действия ...
chrome.browserAction.setPopup({tabId: tab.id, popup: "index.html"});
Приведенное выше решение работает как шарм. Если что-то не понятно, пожалуйста, дайте мне знать! Спасибо JamesWasson за помощь!