Я пытаюсь передать объект из функции. Вот мой код:Пропустить JSON obj из функции parse? | noob javascript question
<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>
То, что я хочу сделать, это вместо того, чтобы использовать объект O внутри функции parseJSON Я хочу, чтобы передать объект таким образом, чтобы после того, как loadJSON() вызов я могу сделать что-то с объектом. Я считаю, что это не «аккуратно», имея внутренние вызовыHTML внутри функции синтаксического анализа.
Я пробовал много итераций, например, объявляя «var jsonOutput» в начале скрипта, а затем создавая «jsonOutput = o», но это просто исключает jsonOutput. Если я попытаюсь вернуть jsonOutput, то я не знаю, куда он возвращается, я не могу его использовать.
Нужно ли делать глобальную переменную? Я пробовал простую декларацию «global jsonOutput», но она не кажется измененной внутри функции.
Застрял, пожалуйста, помогите.
Хм, то parseJSON это обратный вызов, поэтому он имеет код JSON, полученные от вне офиса в качестве объекта «о», это данные, которые я хочу, чтобы выставить вне функции. Я попробовал "var jsonOutput = {};" (в функции и из нее), а затем установите «jsonOutput = o; return jsonOutput», но это, похоже, не делает этого. – 2009-04-03 14:51:48