me encontré con la siguiente solución:
- Configurar un archivo de manifiesto para definir un script de contenido que se añade a cada página, y una página de fondo separado.
- En el archivo .js de Script de contenido, agregue un detector de eventos para el evento 'copiar', ya sea para el documento o la ventana. Este detector de eventos se invoca cada vez que el usuario inicia una acción de copia.
- Dado que las secuencias de comandos de contenido existen en un entorno limitado de seguridad (por ejemplo, no hay XMLHttpRequests entre sitios), es probable que deseemos responder al evento en la página de fondo. Para hacerlo, use la API de paso de mensajes de Chrome, así que envíe un mensaje a la página de fondo.
Un pequeño ejemplo de trabajo:
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({});
});
Gracias, eso es un buen comienzo para detectar eventos de copia ejecutados mediante atajos de teclado. Probablemente necesite un mecanismo diferente para detectar el menú Edición -> copiar invocaciones, fuera de Javascript. – bjoern