Контекстное меню chrome-extension отображается, но не отвечает в открытом PDF-файле в браузере. - PullRequest
0 голосов
/ 22 октября 2018

У меня есть расширение, которое будет вставлять «div» на веб-страницу при нажатии контекстного меню.Это нормально работает на обычных веб-страницах, кроме файла pdf.

Просмотрщик chrome pdf открывает файл pdf, и я вижу элемент в контекстном меню, когда щелкаю правой кнопкой мыши, но когда я щелкаю по элементу контекстного меню, Ничего не произошло.Тем не менее, контекстное меню другого расширения по-прежнему работает.

Итак, какая специальная обработка необходима для работы контекстного меню?

Некоторые настройки:

background.js

chrome.contextMenus.create({
  id:'menuid',
  title: 'My Menu',
  contexts: ['all']
})

chrome.contextMenus.onClicked.addListener(function (info, tab) {
  if (info.menuItemId === 'menuid') {
    chrome.tabs.sendMessage(tab.id, {
      type: 'contextMenus',
      info: info,
      tab: tab
    }, {})
  }
})

content_script.js

chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) {
  if (request.type === 'contextMenus') {
    InsertingElement(request.info, request.tab)
  }
})

Кажется, что InsertingElement не запускается на странице PDF.Также кажется, что многие события недоступны, например, когда я добавляю в скрипт контента следующее:

document.addEventListener('pointerup', pointerUpProcess)
document.addEventListener('click', clickProcess)

функции обратного вызова не запускаются, когда я нажимаю на открытую страницу PDF.Интересно, перехватил ли chrome pdf viewer и отключил ли эти события.Если да, то как их включить?

Я провел еще один эксперимент, вставив кнопку из скрипта содержимого и настроив функцию обратного вызова для события click в кнопке, это работает.

...