我搜索并找到相关帖子,但没有一个具体解释为什么我从Mozilla Dev网站提取的代码(稍有变化)中收到错误...有人可以启发我吗?
我在Windows 7笔记本电脑上使用Firefox 47.0.1
Mozilla的Geolocation getCurrentPosition()示例代码位于
之下https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/getCurrentPosition
function GeoLocationSuccess(pos) {
var crd = pos.coords;
console.log(crd);
console.log('Your current position is:');
console.log('Latitude : ' + crd.latitude);
console.log('Longitude: ' + crd.longitude);
console.log('More or less ' + crd.accuracy + ' meters.');
return true;
}
function GeoLocationError(err) {
console.warn('ERROR(' + err.code + '): ' + err.message);
return true;
}
function GetLocation()
{
var options = {
enableHighAccuracy: true,
timeout: 5000,
maximumAge: 0
};
navigator.geolocation.getCurrentPosition(GeoLocationSuccess, GeoLocationError, options);
return true;
}
GetLocation();
当我执行它时,我在控制台中得到以下内容(我编辑/更改lat / long为99)
this.listener[listenerFunc] is undefined NetworkGeolocationProvider.js:544:0
POST XHR https://www.googleapis.com/geolocation/v1/geolocate [HTTP/2.0 200 OK 97ms]
Coordinates { latitude: 99.3951796, longitude: 99.374427299999999, altitude: 0, accuracy: 94, altitudeAccuracy: 0, heading: NaN, speed: NaN }
Your current position is:
Latitude : 99.3951796
Longitude: 99.374427299999999
More or less 94 meters.
为什么我收到错误 this.listener [listenerFunc]未定义 ?
我有一半的想法,因为get是异步的,它希望在有一个响应之后运行一个函数,但是我不清楚函数调用/名称被请求/命名的位置。
所有帮助表示赞赏
答案 0 :(得分:0)
我在DeviceReady之前寻找结果...当我在DeviceReady之后延迟了我的请求时,错误就消失了。
但是...
我不太清楚的是,为什么当我的请求只进行一次时,错误会每隔几秒就重复一遍。我把console.log调用放入我的GeoLocationSuccess()调用,它确认我只调用了GeoLocationSuccess()一次,但尽管如此,错误消息重复了几次。我怀疑这可能是Firefox 47.0.1中的一个错误
答案 1 :(得分:0)
我在Firefox 50.0.2中遇到了同样的错误
问题是回调函数出错。
Firefox在这种情况下显示不相关的错误消息