【问题标题】:getCurrentPosition not firing callbacksgetCurrentPosition 不触发回调
【发布时间】:2021-04-29 19:56:21
【问题描述】:

我正在尝试获取访问我网站的访问者的纬度和经度。但是,出于某种原因,我没有从 getCurrentPosition() 中得到任何信息。

这是我当前的代码:

const successCb = (position) => {
    console.log(position);
}

const errorCb = (error) => {
    console.error(error);
}

window.addEventListener("load", () => {
    navigator.geolocation.getCurrentPosition(successCb, errorCb);
});

因此,据我了解,这应该将 getCurrentPosition 信息(包括纬度和经度)或错误记录到控制台。但我认为 getCurrentPosition() 甚至没有触发回调(successCb 和 errorCb)。没有控制台日志,没有错误。我有定位服务,我可以登录 navigator.geolocation,而且我在 https://。我真的不知道从这里去哪里。非常感谢任何帮助。

【问题讨论】:

  • 我注意到,当我尝试时,我的浏览器位置栏中显示了一个小图标。当我点击它时,我被告知我的计算机上的定位服务已被禁用——这可能是发生在你身上的事情吗?我的控制台没有出现任何错误。
  • 是的,我也有,但对我来说,它说位置服务已开启。另外,我没有收到错误,我只是没有得到任何东西哈哈

标签: javascript api callback geolocation


【解决方案1】:

const successCb = (position) => {
    console.log('in success callback');
    console.log(position);
}

const errorCb = (error) => {
    console.log('in error callback');
    console.error(error);
}

window.addEventListener("load", () => {
    console.log('in load listener');
    if ('geolocation' in navigator) {
        console.log('geolocation available');
        navigator.geolocation.getCurrentPosition(successCb, errorCb);
    }
    else {
        console.log('geolocation not available');
    } 
});
<!DOCTYPE html>
<html lang="en">

<head>
    
</head>

<body>
    <h3>example</h3>
</body>
<html>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-26
    • 2010-10-09
    • 1970-01-01
    • 2015-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多