私は関数からオブジェクトを渡そうとしています。ここに私のコードは次のとおりです。私は何をしたいかJSON objを解析関数から渡しますか? | noob javascriptの質問
<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>
は私がloadJSON()は私がオブジェクトで物事を行うことができます呼び出した後ようにオブジェクトを渡したい代わりにparseJSON関数内オブジェクトoを使用するのです。私は、それが "きちんとしていない" innerHTMLの呼び出しを解析関数内に持っていることがわかります。
スクリプトの開始時に "var jsonOutput"と宣言してから "jsonOutput = o"を作成するなど、多くの繰り返しを試しましたが、jsonOutputは未定義のままです。私がjsonOutputを返そうとすると、どこに返されているのか分からず、とにかく使用できません。
グローバル変数を作成する必要はありますか?私は単純な "global jsonOutput"宣言を試みましたが、関数内で変更されていないようです。
頑張ってください。
うーん、parseJSONがコールバックなので、それはJSONコードは「O」オブジェクトとしてオフサイトから受け取った、それは私が関数の外で公開するデータです。私は "var jsonOutput = {};" (関数内外で)、 "jsonOutput = o; return jsonOutput"を設定しますが、そうではないようです。 –