javascript - 在不同的 <script> block 中访问 JavaScript 变量

标签 javascript html geolocation

下面是使用 HTML5 地理定位来获取用户的纬度和经度坐标的基本代码片段。然后它将值存储在 userLat 和 userLng 中。

出于测试目的,我添加了一个基本的 document.getElementById().innerHTML 代码段。如果我将该代码块移动到原始 block ,它就可以正常工作。但是,如果我将其移动到它自己的 block (如图所示),则不会对该变量给出任何响应。如何全局分配这两个变量,以便我可以在第一个标签之外访问它们的值?

谢谢。

    <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>

最佳答案

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

您正在尝试在 userLat 和 usrLng 被分配任何值之前使用它们

关于javascript - 在不同的 &lt;script&gt; block 中访问 JavaScript 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18725802/

相关文章:

php - 在 MySQL 中的十进制列中查找最接近的匹配项

php - 使用 AJAX 将 lat 和 lng 变量发送到 PHP 以进行邻近度计算

生产方式中的 Java 和 GeoLite 数据库 : How to use GeoLiteCity. dat?

javascript - Mongoose 设计模型中的嵌入式文档与引用?

javascript - 制作跨平台应用程序的最佳方式?

html - 如何删除两个跨度元素之间的多余空间?

javascript - JS : Displaying html w/variables via document. 写入

javascript - 加载更多数据 - ScrollTop 功能不起作用

javascript - 在窗口调整大小时引导更改按钮文本大小

javascript - 类型错误 : trying to access 'property' on undefined