2013-07-04 131 views
0

所以我試圖在Javascript中首次使用地理定位。我基本上覆制了來自另一個堆棧溢出jsfiddle示例的代碼,這工作,但我得到一些奇怪的錯誤。有一段時間,我在JS控制檯中得到了「最大的callstack大小超過jquery」錯誤(並且像調用getLocation()的20個調用),現在我沒有收到任何迴應 - 除了地址欄中帶有X的小目標圖標它表示位置權限被拒絕(即使在自動允許所有位置請求後)。這是在鉻。試過safari,它發出了一個警告,要求許可,但之後什麼都沒有發生。仍然沒有錯誤。有什麼建議麼?找不到地理位置

$(window).load(function() { 
    function getLocation() { 
     if (navigator.geolocation) { 
      navigator.geolocation.getCurrentPosition(showPosition); 
     } 
     else { 
      $('#test').write("Couldn't fetch location."); 
     }; 
    }; 

    function showPosition(position) { 
     $('#test').write("<h1>Latitude: \"" + position.coords.latitude + "\"</h1>"); 
     $('#test').write("<h1>Longitude: \"" + position.coords.longitude + "\"</h1>"); 
    }; 

    getLocation(); 
});, 

回答

0

有jQuery中沒有write()方法,並在結尾有有一個逗號。
修復語法錯誤,它應該工作:

$(function() { 
    function getLocation() { 
     if (navigator.geolocation) { 
      navigator.geolocation.getCurrentPosition(showPosition); 
     } 
     else { 
      $('#test').html("Couldn't fetch location."); 
     } 
    } 

    function showPosition(position) { 
     $('#test').html("<h1>Latitude: \"" + position.coords.latitude + "\"</h1>"); 
     $('#test').append("<h1>Longitude: \"" + position.coords.longitude + "\"</h1>"); 
    } 

    getLocation(); 
}); 

FIDDLE

+0

謝謝!逗號是在這裏粘貼代碼的錯字,但顯然問題在於「寫入」命令。儘管Chrome瀏覽器仍然在Safari和Firefox中運行,但仍然沒有獲得任何結果 - 有什麼想法? – wkd

+0

@wkd - 它可以在Chrome中使用? – adeneo

+0

https://code.google.com/p/chromium/issues/detail?id=100353看起來像是本地託管文件的鉻版本問題。 – wkd

0
<script> 

var x=document.getElementById("test"); 

function getLocation() 
{ 
if(navigator.geolocation{navigator.geolocation.getCurrentPosition(showPosition); 
} 
else { x.innerHTML = "Geolocation is not supported by this browser."; 
}}function showPosition(position){x.innerHTML="Latitude: " + position.coords.latitude + <br>Longitude: " + position.coords.longitude; } 

</script>