【发布时间】:2012-02-13 15:08:38
【问题描述】:
我有一个检查 GeoLocation API 的代码 sn-p。如果可用,我会尝试获取当前位置。但是根据浏览器的不同,代码的工作方式会有所不同:
- 在 IE 中,每次 F5 引用都会调用 successCallback
- 在 FF 中,我得到 successCallback 或 errorCallback,错误代码 = 2 (POSITION_UNAVAILABLE)
- 在 Chrome 中,我得到了 successCallback 或...什么也没有。我等啊等,什么都没有
实际上我需要以某种一致的方式调用successCallback...有没有改变来实现它?
代码sn-p:
function successCallback(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
alert("Your location is: " + latitude + "," + longitude);
}
function errorCallback(error) {
console.log(error);
}
if (Modernizr.geolocation) {
navigator.geolocation.getCurrentPosition(successCallback, errorCallback, { maximumAge: 0 });
alert("geolocation is enabled");
} else {
alert("geolocation is NOT enabled");
}
速记 1:
alert("geolocation is enabled");
每次都被调用。
速记 2:
设置:
maximumAge: 1
效果更好。现在 Chrome 和 IE 每次都会调用 successCallback。只有FF吓到我了,它随机调用successCallback。
【问题讨论】:
标签: geolocation