下面是一个基本的代码片段,它使用HTML5地理定位来获取用户的纬度和经度坐标。然后它将值存储在userLat和userLng中。
出于测试目的,我添加了一个基本的document.getElementById()。innerHTML片段。如果我将该代码块移动到原始块,它可以正常工作。但是,如果我将它移动到它自己的块(如图所示),则不会对变量给出响应。如何全局分配2个变量,以便我可以在第一个标记之外访问它们的值?
感谢。
<script>
var userLat;
var userLng;
function getLocation() {
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(storeLocation);
}
}
function storeLocation(position) {
window.userLat = position.coords.latitude;
window.userLng = position.coords.longitude;
}
window.onload = getLocation;
</script>
<script>
document.getElementById("userLocationInfo").innerHTML="Latitude: " + userLat + "<br>Longitude: " + userLng;
</script>
答案 0 :(得分:1)
因为下面的脚本首先执行而不是函数getLocation,因为当窗口完全加载时会调用此函数。
你试图在获得任何值之前使用userLat和usrLng的值
答案 1 :(得分:0)
如果你真的想这样做,你可以将它们分配为window
的属性:换言之,window.userLat
和window.userLng
。或者,如果要减少命名空间中的名称,可以创建window.userCoordinates
对象,然后定义window.userCoordinates.latitude
和window.userCoordinates.longitude
属性。
答案 2 :(得分:-1)
尝试在没有'window'语句的情况下声明变量的值 userLat = position.coords.latitude; userLng = position.coords.longitude;