-1

我有以下代码:

<script type = "text/javascript">
    function getLocation() {
        if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(geofields);
        }
    }

    function geofields() {
        if (document.getElementById('starthere').checked == 1) {
            document.getElementById('start').value = position.coords.latitude + " " + position.coords.longitude;
        } else {
            document.getElementById('start').value = '';
        }
    }
</script>

我想function geofields(){显示 GeoLocation,将 'start' 元素的值更改为坐标(从 GetLocation() 脚本接收),但它不适用于上面的代码。有什么建议么?

4

3 回答 3

1

您需要添加position参数geofields并调用getLocation(或将其设置为处理程序)。

function getLocation() {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(geofields);
    }
}

function geofields(position) {
    if (document.getElementById('starthere').checked == 1) {
        document.getElementById('start').value = position.coords.latitude + " " + position.coords.longitude;
    } else {
        document.getElementById('start').value = '';
    }
}

document.addEventListener('load', getLocation);
于 2012-12-14T19:52:30.660 回答
0

来自MDN文档:

navigator.geolocation.getCurrentPosition(function(position) {
  do_something(position.coords.latitude, position.coords.longitude);
});

在我看来,您没有将position参数传递给您的geofields函数。

于 2012-12-14T19:53:07.623 回答
0

尝试将函数调用放在 body 元素的 onload 属性中。

<body onload="getLocation();">

这应该确保在您执行该函数时 dom 已加载。

问候。

于 2012-12-14T19:49:04.033 回答