地理位置在x尝试后挂起,在浏览器重启后工作

时间:2010-12-06 11:39:01

标签: javascript html browser geolocation

我正在制作一个需要抓住地理位置的脚本。它大部分时间都可以工作,但是偶尔也不会获取地理位置,我必须重新启动浏览器才能再次工作。这发生在Safari和FF中(未在IE和Chrome中测试)。有人知道是什么原因引起的吗?我正在使用“HTML 5”一书中的这段代码。

<script type="text/javascript">

function loadDemo() {
    if(navigator.geolocation) {
        document.getElementById("status").innerHTML = "HTML5 Geolocation is supported in your browser.";
        navigator.geolocation.getCurrentPosition(updateLocation);
    }
}

function updateLocation(position) {
    var latitude = position.coords.latitude;
    var longitude = position.coords.longitude;

    if (!latitude || !longitude) {
        document.getElementById("status").innerHTML = "HTML5 Geolocation is supported in your browser, but location is currently not available.";
        return;
    }

    document.getElementById("latitude").innerHTML = latitude;
    document.getElementById("longitude").innerHTML = longitude;
}

1 个答案:

答案 0 :(得分:1)

FF有时会挂起,不知道野生动物园。据我所知,它在IE中不起作用。到目前为止,它似乎在Chrome中运行良好。 你可以通过设置超时来“解决”这个问题。它仍然不起作用,但至少脚本会在一段时间后终止。我用这个代码。 如果你找到了一个好的解决方案,请告诉我。

    navigator.geolocation.getCurrentPosition(
        function(position) {
            //succes handler
        },
        function errorCallback(error) {
            //error handler
        },
        {
            enableHighAccuracy:false,
            maximumAge:Infinity,
            timeout:5000
        }
    );