Если я звоню console.log('something');
со всплывающей страницы, или любой другой скрипт включен, он работает нормально.
Однако, поскольку фоновая страница не запускается непосредственно из всплывающей страницы, она не включается в консоль.
Есть ли способ, которым я могу получить console.log()
на фоновой странице, чтобы показать в консоли для всплывающей страницы?
есть ли способ, с фоновой страницы вызвать функцию на всплывающей странице?
Ответы:
Любая страница расширения (кроме скриптов контента ) имеет прямой доступ к фоновой странице через
chrome.extension.getBackgroundPage()
.Это означает, что на всплывающей странице вы можете просто сделать:
Чтобы сделать его проще в использовании:
Теперь, если вы хотите сделать то же самое в контентных скриптах, вы должны использовать Message Passing для достижения этого. Причина в том, что они оба принадлежат к разным доменам, что имеет смысл. На странице « Передача сообщений» есть много примеров, которые вы можете проверить.
Надеюсь, что все прояснит.
источник
alert()
chrome.extension.getBackgroundPage()
, я получуnull
. Нужно ли мне установить разрешения или какую-то другую конфигурацию?Вы можете открыть консоль фоновой страницы, щелкнув ссылку «background.html» в списке расширений.
Для доступа к фоновой странице, которая соответствует вашим расширениям, откройте
Settings / Extensions
или откройте новую вкладку и введитеchrome://extensions
. Вы увидите что-то вроде этого скриншота.Под вашим расширением нажмите на ссылку
background page
. Это открывает новое окно. Для образца контекстного меню окно имеет заголовок:_generated_background_page.html
.источник
Чтобы ответить на ваш вопрос напрямую, когда вы звоните
console.log("something")
из фона, это сообщение регистрируется в консоли фоновой страницы. Чтобы просмотреть его, перейдите поchrome://extensions/
ссылке и нажмите на нееinspect view
под своим расширением.Когда вы нажимаете всплывающее окно, оно загружается на текущую страницу, поэтому console.log должен показывать сообщение журнала на текущей странице.
источник
Вы все еще можете использовать console.log (), но он регистрируется в отдельной консоли. Чтобы просмотреть его - щелкните правой кнопкой мыши значок расширения и выберите «Проверить всплывающее окно».
источник
Простейшим решением было бы добавить следующий код вверху файла. И тогда вы можете использовать все полноценные консольные API Chrome, как обычно.
источник
Открыть журнал:
источник
Попробуйте это, если хотите войти в консоль активной страницы:
источник
Относительно исходного вопроса я хотел бы добавить к принятому ответу Мохамеда Мансура, что есть также способ сделать эту работу наоборот:
Вы можете получить доступ к другим страницам расширения (т. Е. Странице параметров, всплывающей странице) из фоновой страницы / сценария с
chrome.extension.getViews()
вызовом. Как описано здесь .источник
Это старый пост с уже хорошими ответами, но я добавляю свои два бита. Я не люблю использовать console.log, я бы предпочел использовать регистратор, который регистрирует данные на консоли или где угодно, поэтому у меня есть модуль, определяющий функцию журнала, немного похожую на эту.
Когда я вызываю журнал («это мой журнал»), он пишет сообщение как во всплывающей консоли, так и в фоновой консоли.
Преимущество заключается в возможности изменять поведение журналов без необходимости изменения кода (например, отключение журналов для производства и т. Д.)
источник
Чтобы получить консольный журнал с фоновой страницы, вам нужно написать следующий фрагмент кода на фоновой странице background.js -
Затем загрузите расширение и осмотрите его фоновую страницу, чтобы увидеть журнал консоли.
Преуспевать!!
источник