2016-12-01 5 views
0

Ich habe eine JavaScript-Datei ein Stück Code aus einer externen Datei nennen: „myCode.js“Wie in einer Java-Script-Datei auf einer anderen Seite

Diese Datei enthält JavaScript-Code:

 var user = JSON.parse(localStorage.getItem("m")); 
     d.Stacks.Set.Map = user.layer; 
     d.Provider = user.Provider; 

     var s = user.Stacks; 
     if (s instanceof Array){ 
      d.geo.ref = user.stacks.name; 
     } else { 
      d.geo.ref = user.stacks.name; 
     } 

Dieser Code hat keine Funktion.

Ich habe mehrere Dateien, die diesen Code verwenden, und anstatt diesen Code in jede Seite zu kopieren und einzufügen, möchte ich einen Weg zu z. Machen Sie einen Link zu diesem "myCode.js" und rufen Sie den Code. Die anderen Dateien haben alle Funktionen, die diesen Code benötigen.

beispiels

var d = $.getJSON("main.json", function(d) { 
      var user = JSON.parse(localStorage.getItem("m")); 
      d.Stacks.Set.Map = user.layer; 
      d.Provider = user.Provider; 

      var s = user.Stacks; 
      if (s instanceof Array){ 
       d.geo.ref = user.stacks.name; 
      } else { 
       d.geo.ref = user.stacks.name; 
      } 
     o.load(d); 
    }); 

was will ich muss ist:

var d = $.getJSON("main.json", function(d) { 
     //HAVE THE CODE FROM "myCode.js" here 
     o.load(d); 
    }); 

Ist das möglich? wenn ja, wie? :) Danke im Voraus.

+0

die 'if' in Ihrem "einige Javascript-Code" ist nutzlos. In beiden Fällen macht es dasselbe. Daher können Sie es sicher ersetzen nur mit 'd.geo.ref = user.stacks.name;' –

+0

Gibt es einen Grund, warum Sie Ihren ersten Code in einer Funktion nicht umbrechen und dann diese Funktion aufrufen können? Solange es im globalen Gültigkeitsbereich definiert ist, sollte es funktionieren. Siehe [can-we-call ..] (http://stackoverflow.com/questions/3809862/can-we-call-the-function-written-in-on-ejavascript-in-another-js-file) oder [calling-a-javascript-function ...] (http://stackoverflow.com/questions/25962958/calling-a-javascript-function-in-an-other-js-file) – Michael

Antwort

0

Sie machen eine Funktion daraus und legen Sie sie in eine der js-Dateien, die Sie auf jeder Seite enthalten.

myCode.js

function modifyD(d) { 
    var user = JSON.parse(localStorage.getItem("m")); 
    d.Stacks.Set.Map = user.layer; 
    d.Provider = user.Provider; 
    d.geo.ref = user.Stacks.name; 
} 

Da d ist ein Ziel und in der Funktion als Referenz übergeben, brauchen Sie nicht wirklich etwas zurück.

any-file.html

<script> 
    var d = $.getJSON("main.json", function(d) { 
    modifyD(d); 
    o.load(d); 
    }); 
    </script> 

    ... 

    <script src="myCode.js"></script> 
+0

Hallo zusammen! Danke für Ihre Antwort. Ich habe genau das gemacht, was Sie mir gegeben haben. Ich habe 2 HTML-Dateien 1 hat eine Skriptfunktion mit dem "global.js" -Code. das andere hat, was Sie in der "any-other-file.js" zur Verfügung gestellt, ich habe eine Skript-Referenz wie das folgende in der Seite hinzugefügt, aber ich bekomme Fehler. Fehler: ändern (d) nicht definiert. –

+0

der Link funktioniert nicht. Wie kann ich die 2 HTML Seiten verlinken? Sie befinden sich beide im selben Ordner nebeneinander. –

+0

Sie können keine HTML-Datei in das Skript-Tag einfügen, also ist 'falsch. Sehen Sie meine modifizierte Antwort, hoffentlich macht es mehr Sinn. –

Verwandte Themen