Я нашел следующее решение:
- Настройте файл манифеста для определения сценария содержимого, который добавляется на каждую страницу, и отдельной фоновой страницы.
- В файле Content Script .js добавьте прослушиватель событий для события «copy», либо для документа, либо для окна. Этот прослушиватель событий вызывается всякий раз, когда пользователь инициирует действие копирования.
- Поскольку скрипты содержимого существуют в изолированной программной среде безопасности (например, нет межсайтовых XMLHttpRequests), мы, вероятно, хотим ответить на событие на фоновой странице. Для этого используйте API передачи сообщений Chrome, поэтому отправьте сообщение на фоновую страницу.
Небольшой рабочий пример:
manifest.json
{
"background_page": "background.html",
"content_scripts": [
{
"matches": ["http://*/*"],
"js": ["oncopy.js"]
}
]
}
oncopy.js
// on copy event, send a message to background.html
function onCopy(e) {
chrome.extension.sendRequest({event: "copy"});
}
//register event listener for copy events on document
document.addEventListener('copy',onCopy,true);
background.html
chrome.extension.onRequest.addListener(
function(request, sender, sendResponse) {
if (request.event == "copy") {
alert("copy detected");
}
sendResponse({});
});