Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

259
Visualizações
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 à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda