2014-05-09 45 views
0

怪怪的,我使用jsfiddle.net運行下面的JavaScript作爲測試 - 直到最後警報到位的Javascript全局變量的使用在此代碼

var v1=1; 
var options = { 
enableHighAccuracy: true, 
timeout: 5000, 
maximumAge: 0 
}; 

function success(pos) { 
    var crd = pos.coords; 

    alert('Your current position is:'); 
    alert('Latitude : ' + crd.latitude); 
    alert('Longitude: ' + crd.longitude); 
    alert('More or less ' + crd.accuracy + ' meters.'); 
    v1=crd.latitude; 
    alert(v1); 
}; 

function error(err) { 
    alert('ERROR(' + err.code + '): ' + err.message); 
}; 

alert(v1); 
navigator.geolocation.getCurrentPosition(success, error, options); 
alert(v1); //removing this makes the code work 

的代碼工作正常。在這種情況下,不會調用成功函數。我很困惑,如果它是一個全局變量聲明問題或調用getCurrentPosition的方式。我想要的只是將經度和緯度值放入一個我可以稍後使用的變量中。新手在這裏。任何指針?

+1

HTML5地理定位API是異步的,因此永遠不會工作。 – adeneo

+2

http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-ajax-call?rq=1,http://stackoverflow.com/questions/8187201/return-value從ajax函數內部 - 不同的功能,同樣的問題 – user2864740

回答

0

您正在使用哪個瀏覽器?上面的代碼在Chrome中工作正常。

第二次提醒可能會暫停執行您的成功功能。更好地使用console.log()進行調試。