it-swarm.com.de

Wie lade ich eine externe Datei und stelle sicher, dass sie zuerst in JSFiddle ausgeführt wird?

Ich habe ein JsFiddle hier und habe Microsoft AJAX hinzugefügt, um es über den externen JS/resource-Bereich zu laden. Wie kann ich feststellen, ob mein JS-Code ausgeführt wird, nachdem die Datei AJAX geladen wurde?

Scheint, dass das AJAX auch nicht geladen wird. :(

Hier ist der Code in der JSFiddle:

Type.registerNamespace("Tutorial.Chapter1");
Tutorial.Chapter1.Person = function(firstName, lastName) {
    this._firstName = firstName;
    this._lastName = lastName;
};
Tutorial.Chapter1.Person.prototype = {
        set_firstName: function(value) {
            this._firstName = value;
        },
        get_firstName: function() {
            return this._firstName;
        },
        set_lastName: function(value) {
            this._lastName = value;
        },
        get_lastName: function() {
            return this._lastName;
        },
        _firstName: "",
        _lastName: "",
        displayName: function() {
            alert("Hi! " + this._firstName + " " + this._lastName);
        }
    };
Tutorial.Chapter1.Person.registerClass("Tutorial.Chapter1.Person", null);
19
Deeptechtons

Öffnen Sie den Abschnitt "Ressourcen hinzufügen" und fügen Sie die URL Ihres externen Skripts hinzu ...

18
Nhaga

Die Registerkarte "Externe Ressourcen" von jsFiddle ist derzeit etwas schwierig und instabil zu verwenden. Die hier definierten Ressourcen sind häufig nicht korrekt im Code enthalten. Es scheint ein Problem mit der automatischen Erkennung von JS- und CSS-Ressourcen zu geben. In diesem Fall wird die externe Ressource einfach nicht zum Hauptabschnitt des resultierenden Codes hinzugefügt. Sie können dies überprüfen, indem Sie den Quellcode des Ergebnisrahmens Ihres jsFiddle überprüfen. Sie werden feststellen, dass Ihre Ressource MS AJAX im resultierenden HTML-Code einfach NICHT erwähnt wird.

Die korrekte Erkennung kann tatsächlich erzwungen werden, indem der URL der Ressource wie folgt ein Dummy-Wert hinzugefügt wird (siehe -> jsFiddle docs für weitere Informationen): 

...&dummy=.js

Hier ein Beispiel, das zeigt, wie Sie die externe Google Maps API-Ressource zu einem jsFiddle hinzufügen (beachten Sie den Parameter dummy ganz am Ende!):

https://maps.googleapis.com/maps/api/js?sensor=false&dummy=.js

Leider funktioniert dies nicht für Sie, da die URL für MS AJAX fehlschlägt, wenn zusätzliche Parameter hinzugefügt werden.

Eine Lösung (und derzeit der sicherste Weg, externe Ressourcen zu laden) besteht darin, die Registerkarte Externe Ressourcen vollständig zu vermeiden und den externen Code manuell in die erste Zeile des HTML-Fensters von jsFiddle zu laden:

<script type='text/javascript' src="http://ajax.aspnetcdn.com/ajax/3.5/MicrosoftAjax.js"></script>

Hier ist Ihr jsFiddle so modifiziert, dass es diese Methode verwendet: http://jsfiddle.net/rEzW5/12/

Es macht eigentlich nicht viel (ich habe nicht überprüft, was mit dem Rest Ihres Codes falsch ist), aber es werden zumindest keine JavaScript-Fehler mehr ausgegeben.

20
Jpsy

@ Jpsys Ansatz scheint nicht mehr zu funktionieren (siehe meinen Kommentar unter seiner Antwort).

Das Hinzufügen der Ressource unter Externe Ressourcen hat für mich auch nicht funktioniert. (Laut Firefox-Debugger konnte die Ressource nicht gefunden werden).

Die einzige Möglichkeit, ein externes Stück JavaScript-Code (in meinem Fall jquery.backstretch.js) zum Laufen zu bringen, bestand darin, Google zu verwenden, um ein Fiddle zu finden, das diese Ressource verwendete (und funktionierte). Fork this Fiddle und kopiere/füge meinen gesamten Code in die HTML-, CSS- und JavaScript-Bedienfelder ein. Pfui!

1
clayRay

@ClayRay, Du bist absolut durch eine Code-Operation gegangen. Beseitigt nur, dass externe Quelle in einfachem HTML-Format erwähnt wird, was in meinem Fall der Fall ist 

    <script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>

Die Verwendung der Registerkarte Externe Ressourcen hat nicht viel geholfen ...

0
Sanje