Разрешения на изменение DOM в контекстном меню расширения Chrome - PullRequest
0 голосов
/ 16 марта 2020

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

...