Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

180
Views
¿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
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!