地理定位侦听器[listenerFunc]未定义

时间:2016-07-22 14:26:04

标签: javascript geolocation

我搜索并找到相关帖子,但没有一个具体解释为什么我从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是异步的,它希望在有一个响应之后运行一个函数,但是我不清楚函数调用/名称被请求/命名的位置。

所有帮助表示赞赏

2 个答案:

答案 0 :(得分:0)

我在DeviceReady之前寻找结果...当我在DeviceReady之后延迟了我的请求时,错误就消失了。

但是...

我不太清楚的是,为什么当我的请求只进行一次时,错误会每隔几秒就重复一遍。我把console.log调用放入我的GeoLocationSuccess()调用,它确认我只调用了GeoLocationSuccess()一次,但尽管如此,错误消息重复了几次。我怀疑这可能是Firefox 47.0.1中的一个错误

答案 1 :(得分:0)

我在Firefox 50.0.2中遇到了同样的错误

问题是回调函数出错。

Firefox在这种情况下显示不相关的错误消息