html5 – navigator.geolocation.getCurrentPosition回调不能在Firefox 10上工作

好,我正在构建一个使用Geolocation API的应用程序.我似乎没有得到一个非常简单的代码在Firefox 10上工作.这里是代码
window.onload = function() {
        if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(function(position) {
                alert('it works');
            },function(error) {
                alert('Error occurred. Error code: ' + error.code);         
            });
        }else{
            alert('no geolocation support');
        }
    };

所以,例如,在chrome中,运行页面后,我会问我是否要分享我的位置,点击“是”后,它会提醒我“工作”.现在在Firefox 10它会要求我分享我的位置,点击分享后它什么也没有…我一直在试图让回调运行任何类型的代码,但没有运气.这是Firefox的错误还是我做错了?我有一个代码示例来测试:http://dev-hub.com/geolocation.html.

编辑 – –
我的操作系统是Windows 7 64bit

解决方法

好的,我发现问题确实是Firefox,它在所有平台上都不能可靠或平等地工作.看着 http://dev.w3.org/geo/api/spec-source.html我发现以下选项可以添加
window.onload = function() {
        if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(function(position) {
                alert('it works');
            },function(error) {
                alert('Error occurred. Error code: ' + error.code);         
            },{timeout:5000});
        }else{
            alert('no geolocation support');
        }
    };

正如你可以看到的,超时:5000已经被添加,这意味着如果由于某些原因,浏览器需要超过5000ms(5秒),然后抛出超时错误(这是错误代码3).所以现在每当Firefox不工作时,至少会运行错误回调,并且我收到一条“发生错误错误代码:3”的警报消息.

显然,超时的默认值是无限的,所以它永远不会超越… Chrome是100%可靠,但Firefox在我的机器上约10%可靠,这是非常令人失望的.在其他运行Windows XP并且位于同一网络上的计算机上,Firefox似乎是100%可靠的.

相关文章

HTML5不是新事物。自从最初发布(2008年1月)以来,我们一直在使用它的一些功能。后来,我再次仔细查看...
Pointer Events API 是Hmtl5的事件规范之一,它主要目的是用来将鼠标(Mouse)、触摸(touch)和触控笔(...
CSS动画非常的有趣;这种技术的美就在于,通过使用很多简单的属性,你能创建出漂亮的消隐效果。其中代表...
clip-path介绍 clip-path 直译过来就是裁剪路径,使用SVG或形状定义一个HTML元素的可见区域的方法。想象...
语法 必需。动画时长的百分比。 合法的值: 0-100% from(与 0% 相同) to(与 100% 相同) 定义和用法...
基本代码 html代码: 首先定义一些基本的样式和动画: background-size: auto 100%; 这段代码的意思是让...