2012-12-14 63 views
-1

我有以下代碼:分配JavaScript函數來記錄元件

<script type = "text/javascript"> 
    function getLocation() { 
     if (navigator.geolocation) { 
      navigator.geolocation.getCurrentPosition(geofields); 
     } 
    } 

    function geofields() { 
     if (document.getElementById('starthere').checked == 1) { 
      document.getElementById('start').value = position.coords.latitude + " " + position.coords.longitude; 
     } else { 
      document.getElementById('start').value = ''; 
     } 
    } 
</script> 

我想function geofields(){顯示地理位置,改變「開始」元素的座標值(來自的getLocation()腳本接收到的) ,但它不適用於上面的代碼。有什麼建議麼?

+0

1.修復格式(echk!)2.描述「不能正常工作」 – 2012-12-14 19:44:06

+0

您遇到的錯誤是什麼? – bits

+0

'不工作'表示'start'元素的值不會改變爲我所要達到的座標。對格式化感到抱歉;) – user1595799

回答

1

您需要將position參數添加到geofields並調用getLocation(或將其設置爲處理程序)。

function getLocation() { 
    if (navigator.geolocation) { 
     navigator.geolocation.getCurrentPosition(geofields); 
    } 
} 

function geofields(position) { 
    if (document.getElementById('starthere').checked == 1) { 
     document.getElementById('start').value = position.coords.latitude + " " + position.coords.longitude; 
    } else { 
     document.getElementById('start').value = ''; 
    } 
} 

document.addEventListener('load', getLocation); 
0

嘗試將函數調用放在body元素的onload屬性中。

<body onload="getLocation();"> 

這應該確保dom在您執行該函數時已加載。

問候。

0

MDN文檔:

navigator.geolocation.getCurrentPosition(function(position) { 
    do_something(position.coords.latitude, position.coords.longitude); 
}); 

我在我看來,你沒有通過position參數去你geofields功能。