2016-12-05 18 views
1

我試圖通過頁面加載自動通過html的地理定位座標,但它不工作。爲什麼函數無法在Document load上執行?

<body > 
    <p id="demo">hi</p> 

</body> 

<script> 

$(document).ready(function() { 
    var x = document.getElementById("demo"); 
    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> 

任何幫助,非常感謝。

https://jsfiddle.net/bushido/dozay2mo/

+0

檢查答案(和音符,它們很重要!) – Dekel

回答

1

您有語法錯誤。

這是修復:

var x; 
 
$(document).ready(function() { 
 
    x = document.getElementById("demo"); 
 
    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 src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p id="demo">hi</p>

注:
1.你需要確保你加載jQuery庫。
2.現代瀏覽器上的getCurrentPosition需要您使用SSL(https://),所以如果您的網站沒有SSL,它將不起作用。
3. x變量是一個局部變量(爲此可用ready塊,而不是showPosition函數內部。

+0

所以我確實有一個語法錯誤,我修正後(謝謝你),許可提示出現,但它仍然沒有把座標放到容器中。編輯:瀏覽器有SSL(Firefox最新版本),當我使用$(document).on(click .... – Danny

+0

@DanielAlexander,你檢查了更新嗎? – Dekel

+0

非常感謝這麼多朋友,我應該看到x只在本地定義,這就是爲什麼它無法訪問。編輯:當然這是我能做的最少 – Danny

相關問題