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

182
Visualizações
¿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 à 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