Feststellen, ob ein JS script geladen wurde, oder nicht.

  • Ich steh grad aufm Schlauch.
    Ich möchte feststellen, ob ein js File geladen werden konnte. Und wenn nicht - warum es nicht geladen werden konnte.
    Soweit bin ich:


    Ich bekomme aber bei .onerror() nur Mist:

    Zitat

    message: [object Event] url: undefined linenumber: undefined


    Jemand ne Idee?

  • Was genau möchtest du feststellen? "message" ist in deinem Fall ein Event und kann als Objekt behandelt werden. Mit console.log(message) erhältst du in der Konsole eine komplette Auflistung. Dort lässt sich auch entnehmen das z.B. der Dateipfad zur angeforderten Datei wie folgt abzufragen ist:

    JavaScript
    message.srcElement.src
  • Ich möchte feststellen, ob das File zB geblockt wurde, oder es nicht existiert (404).
    Mit console.log() bekomme ich:

    Zitat

    Event {clipboardData: undefined, path: NodeList[4], cancelBubble: false, returnValue: true, srcElement: script…}


    Damit kann ich nichts anfangen (oder übersehe ich was?)


    Ich hätte aber gern die Meldung wie die console sie von sich aus aufwirft:
    (hier die komplette console log)

    Zitat

    GET http://localhost/filename.js 404 (Not Found) test.html:37
    Event {clipboardData: undefined, path: NodeList[4], cancelBubble: false, returnValue: true, srcElement: script…}


    In dem Fall hätte ich also gern ein "404" zurück bekommen.

  • Also wenn du nur feststellen willst ob es geladen ist dann pack dort eine Funktion rein -> Namen merken.
    Im ändern JS schreibst du dann

    JavaScript
    if(typeof derName != 'undefined' && typeof derName == 'function'){
        console.log('geladen');
    }


    Wäre meine Idee dazu :)

  • Ja klar, aber ich möcht ja feststellen können, warum das File nicht geladen werden konnte :D
    Bsp PHP curl() -> da kann ich mir den status-code holen. Daran sehe ich dann zB ob 404 ect.
    Und das bekomm ich in JS grad net hin.

  • Da spingt er nicht rein.
    Kommt nur noch die console e.msg:

    Zitat


    GET http://localhost/filename.js 404 (Not Found) test.html:37
    (anonymous function)


    "(anonymous function)" hab ich gerade beim Aufklappen der Meldung gesehen.
    In Zeile 37 Steht

    JavaScript
    document.getElementsByTagName('head')[0].appendChild(el);


    Daher dachte ich an

    JavaScript
    document.onerror = function(message, url, linenumber) {
        console.log(message)
      alert('message: ' + message + ' url: ' + url + ' linenumber: ' + linenumber);
      return true;
    };


    was aber auch nicht funktioniert.


    Ich versteh das nicht. Überall im Netz wird die Funktion angeboten, um Fehler abzufangen.
    Aber die funzt net :D

  • IE, Opera; FF, Chrome geben mir (nur bei el.onerror :(

    Zitat

    message: [object Event] url: undefined linenumber: undefined


    hier nochmal was ich alles versucht hab:


    Mit nem try/catch kommt ich auch nix erreichen.

  • Ich hab da mal "reingesehen" und ... :D
    naja, das sieht aus, als wäre das obj unendlich - mit nutzlosen Daten.
    Bei einer Schleife die alles ausgeben sollte (print_r für JS) kommt der Browser ans Ressourcen Limit und bricht ab.
    Und eine Fehlermeldung o.ä. ist da drin nicht zu finden =/


    Ich verstehe nicht, was hier falsch läuft.
    Wird daraus jemand schlau: https://developer.mozilla.org/…obalEventHandlers.onerror
    ?
    Ich sehe dort und bei w3 keine anmerkung, dass es nicht funktionieren sollte.
    Ich dreh hier bald durch :D

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!