好的,我发现问题确实是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%可靠的.