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

254
Vistas
Scripts en línea en una nueva ventana desde Javascript usando window.open()

Esto se ha preguntado antes, y todas las respuestas que pude encontrar están desactualizadas y no funcionan. Este es un script del lado del usuario inyectado (a través de Tampermonkey) en una página web existente, que crea un cuadro de diálogo de 'opciones', que requiere que JS procese las selecciones realizadas en ese cuadro de diálogo, siendo el 'diálogo' una nueva ventana. Lo he reducido a lo esencial.

Llame para crear la nueva ventana:

 function createConfigDiv() { let x = window.open(); x.document.write(optionsHtml); x.document.close(); }

optionsHtml es global, creado en una función para que pueda usar el colapso del código, es:

 const optionsHtml = loadSimpleOptionsPage(); function loadSimpleOptionsPage() { let CSP = `<meta http-equiv=Content-Security-Policy content="script-src 'self' 'unsafe-inline';">`; let html = `<html>` + `<head>`+ CSP + `</head>` + `<script language="JavaScript" type="text/javascript">var i=0;</script>` + `</html>`; return html; }

Está estructurado de esa manera para que pueda comentar el bloque <script> . Comentarlo significa que todo funciona como se esperaba (una nueva pestaña, pero sin funcionalidad) independientemente de si tengo algún código JS real en el bloque.

HTML renderizado:

HTML renderizado

Error:

error

En pocas palabras, "​Se negó a ejecutar el script en línea porque viola la siguiente directiva de Política de seguridad de contenido: "script-src '..."

Supongo que el CSP que muestra es de la página desde la que se ejecuta mi script, que abre las ventanas, sobre el que no tengo control. Se está ejecutando en torn.com

El código real es un controlador para un elemento de entrada (casilla de verificación). Realmente no puedo moverlo a un archivo externo, esto se genera sobre la marcha sin dónde alojarlo. Intenté escribir en un iframe, lo que resultó en el mismo error.

Parece que de donde sea que provenga el CSP al que se hace referencia, anula mi metaetiqueta. Si coloco intencionalmente un error de sintaxis en mi etiqueta meta, obtengo un error. Como se mencionó en las pruebas de Chrome de las directivas CSP de encabezado frente a metaetiquetas, parece que la última directiva vista solo puede fortalecer, no reducir (ni reemplazar), la política de seguridad.

Así que veo algunas opciones, ninguna de las cuales pude encontrar/implementar: abrir una nueva ventana sin CSP hasta que la agregue en una metaetiqueta, otro método además de usar window.open() para hacer lo que quiero, ??? ¡Cualquier sugerencia apreciada!

about 4 years ago · Juan Pablo Isaza
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