Cómo saber si una etiqueta <script> no se pudo cargar

Estoy agregando dinámicamente<script> etiquetas para @ de una pági<head>, y me gustaría poder decir si la carga falló de alguna manera: un 404, un error de script en el script cargado, lo que sea.

En Firefox, esto funciona:

var script_tag = document.createElement('script');
script_tag.setAttribute('type', 'text/javascript');
script_tag.setAttribute('src', 'http://fail.org/nonexistant.js');
script_tag.onerror = function() { alert("Loading failed!"); }
document.getElementsByTagName('head')[0].appendChild(script_tag);

Sin embargo, esto no funciona en IE o Safari.

¿Alguien sabe de alguna manera de hacer que esto funcione en navegadores que no sean Firefox?

(No creo que una solución que requiera colocar un código especial dentro de los archivos .js sea buena. Es poco elegante e inflexible).

Respuestas a la pregunta(16)

Su respuesta a la pregunta