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

206
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
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