嘗試改變你的代碼如下:
<script type="text/javascript">
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
document.write(latitude, longitude);
});
}
</script>
當位置被檢索您傳遞到getCurrentPosition()
功能將得到執行。只有您有權訪問該位置,您才能設置latitude
和longitude
變量並將它們寫入文檔。
在你的代碼getCurrentPosition()
將被調用,然後立即之後document.write(latitude,longitude);
將得到執行是前路latitude
和longitude
可用。您必須將document.write()
移動到Location()
。
更新1(基於評論):
如果你不想做document.write()
回調函數裏面,但你要調用另一個函數,則必須從回調函數調用它。
它看起來是這樣的:
<script type="text/javascript">
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
myFunction(latitude, longitude);
});
}
function myFunction(latitude, longitude) {
// you can do here anything you wish
document.write(latitude, longitude);
}
</script>
更新2(基於評論和更新的問題):
一種方法如何根據位置來處理加載地圖是調用initialize()
從Location()
與latitude
和longitude
作爲參數。爲了確保在加載頁面時執行HTML元素的代碼可以在Location()
內執行。
window.onload = intialize(latitude, longitude);
一個完整的代碼見this。
我知道我不叫它,但它仍然有效!它只是沒有輸出值 – jony
我推薦閱讀一些基本的JavaScript教程,而不是跳入深層,嘗試去做一些事情,而不去理解語言的最簡單概念。 –