Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

172
Vistas
¿Cómo puedo hacer que funcione de manera estable e insertarlo como extensión de Chrome?

Este código guarda y ordena el texto HTML interno del cuerpo según la cantidad de veces que presionó la combinación de teclas. Funciona, pero en algún momento el script deja de funcionar y debe cambiarse o el archivo que lo contiene debe cambiarse de nombre para continuar funcionando. Además, intenté agregarlo como extensión de Chrome y en el modo de depuración veo que la secuencia de comandos está conectada (resulta conlose.log después del controlador de eventos DOMContentLoaded), pero omite algunos bloques de código y después de cada corrección, uno diferente. Puede ver este fenómeno en los modos de programa "servidor local" y "extensión del navegador". Intenté resolver este problema de alguna manera, revisé muchos foros y soluciones y todavía no t have a solution. So it's sad that I can terminar mi primer mini proyecto en js nativo (. Deseo sinceramente su guía.

emergente.js

 document.addEventListener("DOMContentLoaded", function() { let inputEl = document.body; inputEl.addEventListener("keydown", copy_paste); }); console.log('It connected'); let storage = {}; function copy_paste(e) { if (e.ctrlKey && e.key == "q") { let inputValue = window.getSelection(); navigator.clipboard.writeText(inputValue).then( navigator.clipboard.readText().then((text) => { if (!storage.hasOwnProperty(text)) storage[text] = 1; else storage[text] += 1; mySort(storage); }) ); } } function show(arrStorage) { let parent = document.getElementById("insert"); parent.innerHTML = ""; for (let i = 0; i < arrStorage.length; i++) { let para = document.createElement("h4"); para.innerText = arrStorage[i][0] + " : " + arrStorage[i][1]; parent.appendChild(para); } } function mySort(storage) { let arrStorage = []; for (let key in storage) { arrStorage.push([key, storage[key]]); } arrStorage.sort(function (a, b) { return b[1] - a[1]; }); show(arrStorage); }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

navigator.clipboard.readText() requiere permiso de clipboard-read de Permission API.
https://developer.mozilla.org/en-US/docs/Web/API/Clipboard

El valor predeterminado de clipboard-read es "prompt" (en mi caso), lo que significa que llamar a .readText() hace que un mensaje emergente solicite permiso para leer el portapapeles.

Cuando su popup.html se abre en la pestaña activa (al definir popup.html como página de opciones en manifest.json , por ejemplo), el mensaje emergente aparece al presionar cntl-q. Después de hacer clic en Aceptar en la ventana emergente, la información de permisos se almacena en Chrome. Puedes verlo en:
chrome://settings/content o chrome://settings/content/all .

Desafortunadamente, cuando se abre popup.html como ventana emergente de la acción del navegador, la ventana emergente de permiso parece estar bloqueada y su extensión parece detenerse. No sé por qué, pero supongo que es por razones de seguridad.

Creo que no hay forma de permitir clipboard-read en el programa sin la intervención del usuario.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda