getCurrentPosition 不触发回调

Posted

技术标签:

【中文标题】getCurrentPosition 不触发回调【英文标题】:getCurrentPosition not firing callbacks 【发布时间】: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://。我真的不知道从这里去哪里。非常感谢任何帮助。

【问题讨论】:

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

【讨论】:

以上是关于getCurrentPosition 不触发回调的主要内容,如果未能解决你的问题,请参考以下文章

navigator.geolocation.getCurrentPosition的回调没有在firefox中触发

navigator.geolocation.getCurrentPosition 的“无操作”回调在哪里?

如果未授予/拒绝访问,则 navigator.geolocation.getCurrentPosition 超时

getCurrentPosition 在 iOS 6 上的 PhoneGap 1.3 中几乎总是失败

geolocation h5

重试地理定位请求而不刷新浏览器