У меня есть расширение, которое будет вставлять «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 в кнопке, это работает.