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

757
Views
Extensión de Chrome: ¿cómo atrapar/manejar errores de script de contenido globalmente?

En una extensión de Chrome, ¿hay alguna manera de atrapar/manejar globalmente los errores de Javascript que ocurren en un script de contenido? (por ejemplo, para el envío a un servicio de seguimiento de errores de Javascript como bugsnag)

Idealmente, configuraría un controlador global window.onerror en la parte superior del script de contenido. Pero no funciona correctamente en Chrome 40: se detecta el error, pero la información proporcionada es inútil: un mensaje de 'Error de secuencia de comandos' y ninguna URL, número de línea, columna o objeto de error con la pila.

Creé una extensión de prueba para mostrar este comportamiento defectuoso para los scripts de contenido. Detalles abajo. Hallazgos interesantes:

  • window.onerror funciona correctamente en un script de fondo, con información completa del error
  • window.onerror en la página web de alojamiento también puede ver el error arrojado por un script de contenido de extensión (pero el error tampoco contiene información útil)

Reproduciendo window.onerror roto para el script de contenido de la extensión de Chrome.

En una carpeta nueva, cree manifest.json , content-script.js y background-script.js . Luego cárguelo en Chrome a través de Ventana> Extensiones> Cargar extensión desempaquetada.

  • Para ver la información de window.onerror rota para un error de secuencia de comandos de contenido, vuelva a cargar una página web y mire la consola de devtools

manifiesto.json

 { "name": "Chrome extension content-script errors test", "manifest_version": 2, "version": "0.0.1", "background": { "scripts": [ "background-script.js" ] }, "content_scripts": [{ "matches": ["<all_urls>"], "js": ["content-script.js"] }] }

contenido-script.js

 window.onerror = function (errorMsg, url, lineNumber, column, errorObj) { console.log('Caught content script error'); console.log('errorMsg: ' + errorMsg); console.log('url: ' + url); console.log('lineNumber: ' + column); console.log('column: ' + column); console.log('errorObj follows:'); console.log(errorObj); return true; }; console.log('I am a content script, about to throw an error'); throw new Error('Is this error caught?');

script de fondo.js

 window.onerror = function (errorMsg, url, lineNumber, column, errorObj) { console.log('Caught background script error'); console.log('errorMsg: ' + errorMsg); console.log('url: ' + url); console.log('lineNumber: ' + column); console.log('column: ' + column); console.log('errorObj follows:'); console.log(errorObj); return true; }; //To see nice window.onerror behaviour for background script.. //Uncomment 2 lines below, reload extension, and look at extension console //console.log('I am a background script, about to throw an error'); //throw new Error('Is this error caught?');
over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

5 meses después de hacer esta pregunta, ahora estoy bastante convencido de que actualmente no hay una manera fácil de atrapar/manejar los errores de Javascript que ocurren en un script de contenido. Como tal,

  • Creé un informe de error de Chrome: window.onerror debe contener información útil para el error lanzado en el script de contenido de extensión . Siéntase libre de contribuir con comentarios útiles.
  • Si necesita atrapar globalmente los errores de secuencias de comandos de contenido, lo mejor que puede hacer es asumir que window.onerror está bloqueado por ahora en las secuencias de comandos de contenido. En su lugar, envuelva todo el código Javascript en bloques try-catch, lo que le da acceso a información útil sobre errores. Esto es más complicado de lo que parece, ya que debe manejar tanto el código síncrono (fácil) como el código de devolución de llamada asíncrona (más complicado). Echa un vistazo a este artículo para empezar, ¡y buena suerte!
over 4 years ago · Santiago Trujillo Report

0

Vea el manejo de errores más completo mediante el script de contenido de la extensión de Chrome en https://github.com/barbushin/javascript-errors-notifier/blob/master/content.js : es el código fuente de la extensión JavaScript Errors Notifier .

over 4 years ago · Santiago Trujillo Report

0

Echa un vistazo a TraceKit , eso es lo que usamos en nuestra empresa para realizar todos los registros de errores de front-end. Si lo combina con una biblioteca de cliente de javascript para su servicio de registro favorito, estará listo.

over 4 years ago · Santiago Trujillo 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!