Estoy tratando de crear una extensión de Chrome que registre la cantidad de clics, pulsaciones de teclas y el tiempo dedicado dentro de un cierto período de tiempo en un sitio web determinado (por ejemplo, 45 clics, 296 pulsaciones de teclas y 129 minutos dedicados a Facebook dentro de una semana) . Nunca he codificado antes y el curso para el que estoy escribiendo este código no cubría las extensiones de Chrome.
Hasta ahora, he descubierto cómo hacer que aparezca un mensaje simple en el registro de la consola cuando hago clic en la página web (el código se muestra a continuación), pero eso es todo. ¿Cómo exportaría la cantidad de clics a un .csv?
manifiesto.json
"name": "Social Media Consumption Tracker", "version": "1.0", "manifest_version": 2, "content_scripts": [ { "matches": ["https://www.facebook.com/*", "http://www.facebook.com/*"], "js": ["content.js"] } ], "permissions": ["tabs"] }contenido.js
document.addEventListener("click", e=> { console.log("Hey there") })Gracias de antemano por su ayuda.
Sugeriría enviar lo que ha estado grabando (los clics y las acciones) al archivo background.js y manipularlo, puede hacerlo usando chrome.runtime.send messages and chrome.runtime.onMessage` Luego, genere un enlace de descarga dentro de la ventana emergente de su extensión para permitir que el usuario descargue el CSV (puede generar el archivo como archivo de fondo)
Creo que lo que necesita para el seguimiento de los clics es laAPI chrome.storage y Maps
var currentDomain = new URL(location.href).hostname; document.addEventListener("click", e=> { increaseEventCounter("click"); }) function increaseEventCounter(event) { chrome.storage.local.get(['youNameIt'],(result) => { let youNameIt = result.youNameIt; let currentWebsiteEventCounter = youNameIt.get(currentDomain).get(event); youNameIt.get(currentDomain).set(event, currentWebsiteEventCounter + 1); chrome.storage.local.set({'youNameIt': youNameIt}); } } Creo que el almacenamiento no mantendrá el tipo de youNameIt , por lo que debe encontrar una forma de convertirlo nuevamente en Map<String,Map<String,Int>> .
Otra función que agrega nuevos sitios web a youNameIt con el contador de cada evento que rastrea establecido en 0.
Busque stackOverflow sobre cómo rastrear el tiempo de gasto en diferentes sitios web, estoy seguro de que ya hay respuestas para eso.