我是新來的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