Ich möchte feststellen, ob ein Skript-Tag (das dynamisch erstellt und dem DOM hinzugefügt wurde) nicht geladen werden kann. Das onerror-Ereignis funktioniert, außer mit file: // URLs in Firefox.Wie erkennt man das Laden einer Datei in eine Datei: // URL schlägt in Firefox fehl?
Leider scheint keine der Techniken described here (außer Timeouts, die in meinem Fall inakzeptabel sind) in Firefox zu funktionieren, wenn der src des Script-Tags eine Datei: // URL (oder relative URL und die Seite wurde geladen über eine file: // URL)
Testfall:
var script = document.createElement('script');
script.setAttribute('type', 'text/javascript');
script.setAttribute('src', 'doesnotexist.js');
script.onerror = function() { alert("Loading failed!"); }
document.getElementsByTagName('head')[0].appendChild(script);
laden diese in einer HTML-Seite mit einer file: // URL. Das Onerror-Ereignis wird in Firefox nicht ausgeführt. Laden von einem Webserver oder Safari oder Chrome, und es wird.
Das scheint wie ein Fehler für mich. Gibt es einen bekannten Weg?
Sie sollten Antworten auf Ihre Fragen akzeptieren. – SLaks
@Marcel Korpel: Er sagte, dass Timeouts keine Option sind, also wird das nicht funktionieren. – PleaseStand
Als Hinweis, das Problem mit Firefox nicht ein "Fehler" -Ereignis feuern, wenn eine 'file: //' -basierte URL nicht geladen wird, ist [Bugzilla Bug 621276] (http://bugzilla.mozilla.org/show_bug.cgi? id = 621276). –