У меня есть промежуточные знания о 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 с помощью команды key, а затем изменение его с помощью действия с контекстным меню работает?
EDIT: код, который не работает при использовании действия контекстного меню:
injected-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. Однако он работает правильно, когда запускается с помощью ключевой команды. После запуска с помощью ключевой команды, запуск через действие контекстного меню позволяет изменить уже добавленный элемент.