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

181
Vistas
¿Por qué EventListener no se activa en el contexto de la página en Safari App Extension?

Estoy tratando de hacer algo en el "contexto de la página", para esto inyecto el script en la página como este

 var pageScript = document.createElement('script'); pageScript.textContent = actualCode; document.body.insertBefore(pageScript, document.body.firstChild);

el actualCoe es

 var actualCode = '(' + function() { document.addEventListener(playerEventName, function(event) { console.log("page script fire""); }); } + ')();'; // end actualCode

pero el oyente no se activa cuando envié el mensaje, en la consola solo veo el nombre del mensaje enviado.

El código completo de mi archivo script.js

 document.addEventListener("DOMContentLoaded", function(event) { safari.extension.dispatchMessage("script injected successfully"); init(); }); let playerEventName = "su.nagornyi.yam.ext.evnt"; var init = function() { console.log("init started"); var pageScript = document.createElement('script'); pageScript.textContent = actualCode; document.body.insertBefore(pageScript, document.body.firstChild); }; // end init var actualCode = '(' + function() { document.addEventListener(playerEventName, function(event) { console.log("page script fire"); }); } + ')();'; // end actualCode safari.self.addEventListener("message", handleMessage); function handleMessage(event) { console.log(event.name); let playerEvent = new CustomEvent(playerEventName, { detail: { action: event.name } }); document.dispatchEvent(playerEvent); }; // end handleMessage

UPD: Error en la consola:

 Refused to execute a script because its hash its nonce or 'unsafe-inline'does not appear in the script-src directive of the Content Securrity policy.

Entonces, ¿es posible inyectar script en esta página?

UPD2: en Safari App Extension, podemos inyectar scripts solo desde un archivo ubicado en el paquete de extensión.

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