Estoy tratando de crear una extensión de Chrome que analice el contenido de la página cuando se haga clic en el botón de la barra de herramientas y luego guarde (es decir, descargue) los resultados en la máquina del usuario. Puedo hacer que el análisis funcione cuando se hace clic en el botón, pero no puedo hacer que active la descarga.
Esta es la primera vez que escribo una extensión de Chrome, por lo que agradecería cualquier ayuda para averiguar por qué no funciona.
manifiesto.json
{ ... "permissions": [ "activeTab", "downloads", "scripting" ], "background": { "service_worker": "background.js" } }fondo.js
chrome.action.onClicked.addListener((tab) => { chrome.scripting.executeScript({ target: {tabId: tab.id}, files: ['analysis.js'] }); }); chrome.runtime.onMessage.addListener((arg, sender, reply) => { chrome.downloads.download({ url: 'data:text/plain,' + arg.text, filename: arg.name, saveAs: true }) });análisis.js
// Do some analysis here chrome.runtime.sendMessage({name: "results.txt", text: "ANALYSIS RESULTS HERE"});Cuando hago clic en el botón de la barra de herramientas, el análisis se ejecuta pero no aparece el cuadro de diálogo Guardar ni aparece ningún archivo en el disco. ¿Qué estoy haciendo mal?
No estoy seguro si resolvió esto todavía o si esta solución resuelve su problema, pero acabo de descubrir que la API de descarga solo funciona para mí si tengo "Preguntar dónde guardar cada archivo antes de descargar" sin marcar en la configuración general de Chrome. Mi solución para esto (y creo que es solo con Manifest v3) es forzar la descarga usando una etiqueta de anclaje en la pestaña activa:
const anchor = document.createElement('a'); anchor.href = filedata; anchor.download = filename; document.body.appendChild(anchor); anchor.click(); document.body.removeChild(anchor);Esto parece ser un error en Chrome manifest V3. Consulte a continuación para obtener más información.
TL&DL, chrome.downloads.download estaba y sigue estando (a partir de mayo de 2022) completamente roto en el manifiesto V3. En el manifiesto V2, parece funcionar.
--
Problema 1246717: chrome.downloads.download nunca se inicia, pero no hay errores
chrome.downloads.download nunca se inicia, pero no hay errores
https://bugs.chromium.org/p/chromium/issues/detail?id=1246717&