在不同的<script>块</script>中访问JavaScript变量

时间:2013-09-10 17:55:39

标签: javascript html5 geolocation

下面是一个基本的代码片段,它使用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>

3 个答案:

答案 0 :(得分:1)

因为下面的脚本首先执行而不是函数getLocation,因为当窗口完全加载时会调用此函数。

你试图在获得任何值之前使用userLat和usrLng的值

答案 1 :(得分:0)

如果你真的想这样做,你可以将它们分配为window的属性:换言之,window.userLatwindow.userLng。或者,如果要减少命名空间中的名称,可以创建window.userCoordinates对象,然后定义window.userCoordinates.latitudewindow.userCoordinates.longitude属性。

答案 2 :(得分:-1)

尝试在没有'window'语句的情况下声明变量的值         userLat = position.coords.latitude;         userLng = position.coords.longitude;