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

201
Views
Manifiesto V3: clase de importación en service_worker

estoy tratando de importar una clase en mi trabajador de servicio, en mi extensión de Chrome

Así que esto es lo que tengo al principio del archivo:

 /*global chrome*/ try { importScripts("utils/utils.js"); } catch (e) { console.log(e); }

y esta es la función donde llamo a la clase:

 async function injectPopup() { try { let b = new Utils(); } catch (e) { console.log(e); } . . .

el console.log me está imprimiendo esto:

 ReferenceError: Utils is not defined at injectPopup (<anonymous>:4:17) at <anonymous>:28:3

este es el contenido de utils/utils.js :

 class utils { test() { console.log("foooo"); } }

¿Puedes decirme cómo se supone que debo llamar a las clases? el objetivo es tener un código más limpio y no toda la lógica en el mismo service_worker, por lo que si hay otra práctica mejor, me encantaría saber

Gracias !

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

En mi caso hubo dos problemas:

Primero, como comentó wOxxOm , necesitaba crear una variable global en el archivo service_worker:

 /*global chrome*/ let globals = {}; // HERE try { importScripts("utils/Utils.js"); } catch (e) { console.log(e); }

Y en la declaración de clase para agregarlo al global así:

 globals.Utils = class Utils { test() { console.log("foo"); } }

El segundo problema fue que lo estaba llamando desde una función dada a chrome.scripting.executeScript que no puede funcionar, porque el script se ejecuta solo en la pestaña Javascript dada y no en el Javascript emergente, y es por eso que la clase no pudo ser encontrado.

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