У меня есть промежуточные знания в области разработки расширений для Chrome.
Контекст:
- Манифест имеет разрешения activeTab и contextMenus.
- Щелчок по элементу контекстного меню должен вводить содержимое в DOM.
- Это отлично работает для обычных веб-страниц, но не работает в средстве просмотра Chrome PDF по умолчанию со следующей ошибкой:
Cannot access contents of the page. Extension manifest must request permission to access the respective host.
Однако, если я сначала ввожу контент с помощью ключевой команды, а затем изменяю этот контент в действии контекстного меню, он работает правильно.
SO,
Почему действие контекстного меню не может добавить узел DOM на страницу PDF (когда работает обычная страница)
И почему работает добавление узла DOM с помощью ключевой команды, а затем его изменение с помощью действия контекстного меню?
РЕДАКТИРОВАТЬ: код, который не работает при использовании действия контекстного меню:
введенный-content.js
let wrapper = document.getElementById(SUTRA_ELEMENT)
if (!wrapper) {
wrapper = document.createElement('div')
wrapper.id = SUTRA_ELEMENT
document.body.prepend(wrapper)
}
// modify wrapper
Это приводит к указанной выше ошибке при запуске через действие контекстного меню в средстве просмотра Chrome PDF. Однако он работает правильно при запуске через ключевую команду. После запуска с помощью ключевой команды запуск с помощью действия контекстного меню позволяет изменить уже добавленный элемент.