我是新来的Javascript和下面的代码是混淆了我的地狱。根据我的理解,您可以通过将var放在它们前面来为全局变量赋值,并且在首先声明全局时不需要定义任何初始值。但是,为什么下面的代码不起作用? (通过不工作我的意思是在main()中调用document.write时吐出“undefined”为“ulat”)。JavaScript中的全局变量?
var ulat;
function write(latitude) {
ulat = latitude;
document.write("<h1> This works:" + ulat + "</h1>");
}
function getloc() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(
function(position) {
write(position.coords.latitude);
},
function (error) {
switch(error.code) {
case error.TIMEOUT:
alert ('Timeout');
break;
case error.POSITION_UNAVAILABLE:
alert ('Position unavailable');
break;
case error.PERMISSION_DENIED:
alert ('Permission denied');
break;
case error.UNKNOWN_ERROR:
alert ('Unknown error');
break;
}
});
}
else {
alert("Geolocation is not supported by your web browser.");
}
}
function main() {
getloc();
document.write("<h1> This doesn't work: " + ulat + "</h1>");
}
任何帮助?谢谢!
你曾经调用'main()'吗? – climbage 2011-04-02 16:30:59
当你承认存在'document.write'时,我建议不要创建一个名为'write'的函数。 – mVChr 2011-04-02 16:31:33
当你说“不工作”时,更具体的做法是一个很好的做法。 – hugomg 2011-04-02 16:31:44