Ich versuche, ein Objekt aus einer Funktion übergeben. Hier ist mein Code:JSON obj aus der Parse-Funktion übergeben? | noob Javascript Frage
<script type="text/javascript">
// finds the head element; creates a script with passed url; appends it to the head
function loadJSON(url) {
var headID = document.getElementsByTagName("head")[0];
var newScript = document.createElement('script');
newScript.type = 'text/javascript'; // isn't this 'application/json' really?
newScript.src = url;
headID.appendChild(newScript);
}
function parseJSON(o) {
if (content == null) {
document.write("<p>parseJSON(): JSON failed.</p>");
return false;
}
isDST = "<strong>not</strong> ";
if (o.rawOffset == o.dstOffset) {
isDST = "";
}
document.getElementById("geonames").innerHTML = "<p>The time now is " + o.time + " in " + o.countryName +".</p>";
}
var lat = "47.01"; var long = "10.2"; // test data for austria
var jsonUrl = " {{URL}} ";
loadJSON(jsonUrl);
</script>
Was ich tun möchte, ist, anstatt das Objekt o in der parseJSON Funktion möchte ich das Objekt zu übergeben, so dass nach dem loadJson() nenne ich die Dinge mit dem Objekt tun kann. Ich finde es nicht "ordentlich", dass die innerHTML-Aufrufe innerhalb der Parse-Funktion sind.
Ich habe viele Wiederholungen von versucht, zB "var jsonOutput" am Anfang des Skripts zu deklarieren und dann "jsonOutput = o" zu machen, aber das lässt jsonOutput undefined. Wenn ich versuche, jsonOutput zurückzugeben, weiß ich nicht, wo es zurückgegeben wird, ich kann es sowieso nicht verwenden.
Muss ich eine globale Variable erstellen? Ich habe versucht, eine einfache "globale jsonOutput" -Deklaration, aber es scheint nicht in der Funktion geändert werden.
Am stecken, bitte helfen.
Hmm, das parseJSON der Rückruf ist, so hat es die JSON-Code empfangen von Offsite als Objekt „o“, das ist die Daten, die ich außerhalb der Funktion verfügbar machen möchten. Ich habe versucht "var jsonOutput = {};" (in und aus der Funktion) und dann setzen "jsonOutput = o; jsonOutput zurückgeben", aber das scheint es nicht zu tun. –