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

759
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
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