【发布时间】:2017-01-05 16:45:19
【问题描述】:
我是 Web 开发的菜鸟,在以下代码中分配 myCountry 变量时遇到问题:
<html>
<head>
<script>
var myCountry=" "
function jsonpCallback(data) {
myCountry=data.address.country;
}
jsonpCallback();
var countryText="You are from "+myCountry;
document.getElementById("displaycountry").innerHTML =countryText;
}
</script>
<script src="http://api.wipmania.com/jsonp?callback=jsonpCallback"
type="text/javascript">
</script>
</head>
<center>
<p id="displaycountry" ></p>
</body>
</html>
我想将 data.address.country 的值分配给 myCountry 并在函数之外使用它,但该值始终保持为“”。
如果我使用以下代码,jsonpCallback 函数可以很好地显示国家(但我希望能够在 html 中修改它的位置):
function jsonpCallback(data) {
a.innerHTML ="<br/>Country: " + data.address.country;
}
谢谢
【问题讨论】:
-
问题不在于您的 JSONP 回调,而在于您不了解该调用的异步性质。您从
myCountry分配的内容刚刚过早,因此之前的回调来不及执行。
标签: json variables scope country