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 超时