Я не могу получить доступ к веб-странице DOM из всплывающего расширения Chrome - PullRequest
0 голосов
/ 25 сентября 2019

Я пытаюсь получить доступ к DOM веб-страницы для моего расширения Chrome.

В одном из сделанных расширений мое расширение без проблем анализирует DOM из файла content.js.Это происходит при загрузке страницы.Пользователю вообще не нужно взаимодействовать / открывать расширение, оно просто должно быть запущено в фоновом режиме.

Теперь я пытаюсь вызвать это с помощью кнопки.Это означает, что пользователь щелкнет значок расширения в браузере, и popup.html покажет некоторый HTML (включая кнопку).

В этом и заключается проблема для меня.Когда я сейчас пытаюсь получить доступ к DOM (через событие нажатия кнопки), он отображает DOM popup.html, а не веб-страницу (активная вкладка).

Итак, быстрый просмотр документов (которыйЯ открыт, чтобы признать, что я борюсь с) показать, что это может быть проблема с разрешениями.В моем файле manifest.json я добавил

"permissions": [
"activeTab"
],

Это не помогло :(

Так что в этом новом расширении я не использую background.js и content.js.. Я думаю, что это проблема, так как вызываемый мной javascript включен во всплывающее окно HTML! Это имеет для меня смысл (в отношении поведения, которое я получаю).

Как получить доступDOM активной вкладки из всплывающего окна HTML

Ответы [ 2 ]

1 голос
/ 25 сентября 2019

Единственный способ получить доступ к DOM страницы - использовать скрипт контента.Поскольку вы установили разрешение activeTab, вы можете использовать chrome.tabs.executeScript , чтобы вставить скрипт содержимого в активную вкладку, пропустив первый параметр (tabId).

Вот пример:

chrome.tabs.executeScript({ file: "content.js" });
0 голосов
/ 26 сентября 2019

У меня была такая же проблема, я нажимаю на кнопку, чтобы открыть всплывающее окно, затем, как мне получить доступ к содержимому всплывающего окна.Да, вам нужно будет использовать скрипты содержимого, но я сделал для этого один трюк, когда всплывающее окно открыто, используйте window.name и получите имя этого окна.Затем вы можете ссылаться на это всплывающее окно с помощью var test = window.name ('', 'name of the window').Затем вы можете ссылаться на элементы DOM всплывающего окна из теста.Сработало для меня, дайте мне знать, если мне нужно включить код для лучшего объяснения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...