Tengo JavaScript que funciona cuando se ejecuta como Bookmarklet. Entonces, sé que el código funciona.
Sin embargo, estoy tratando de evitar tener que pegar el bookmarklet en la barra de marcadores cada vez que cambia el código. El código cambia en cada documento que creamos, desde nuestro sistema MIS.
Quiero poder ejecutar JavaScript desde el portapapeles. Así es como estoy tratando de hacer esto:
javascript: window.focus();setTimeout(async () => { const text = await navigator.clipboard.readText(); console.log(text);eval(text); }, 2000);Parece simple, obtenga el texto del portapapeles y luego ejecútelo.
Sé que el texto se captura del portapapeles porque aparece en el registro de la consola.
¿Qué estoy haciendo mal?
No entraré en cómo siento que esta es una idea espectacularmente mala desde una perspectiva de seguridad. No estoy al tanto de su entorno, por lo que tal vez tenga algún medio para asegurarse de que ningún código malicioso termine en el portapapeles.
Quizás CSP está bloqueando eval. Si es así, deberá agregar el valor "unsafe-eval" al CSP. ¿Hay algún error de registro de la consola?