浏览器允许/禁止地理位置请求上的按钮

时间:2014-05-16 14:47:47

标签: javascript html5 geolocation

是否可以将事件附加到浏览器地理位置请求状态?

当条形图可见时向用户显示箭头......类似这样:

enter image description here

3 个答案:

答案 0 :(得分:2)

顺便说一句,您已经走上了一条黑暗的道路,不得不为不同版本的浏览器/类型/等提供不同的帮助文本。

例如,Firefox 29.0.1权限窗口:

FireFox 29 Geo Permissions

无论如何,我建议改变Nerdicus建议:

而不是默认显示箭头&然后只是在调用JavaScript时隐藏它,我会默认显示:none;,然后在你做地理定位请求之前触发一个.show()来减少你的闪烁",然后将它隐藏起来你的成功/错误回调。

此外,在您的成功处理程序中,您可以创建一个cookie(可能在会话级别)

$.cookie("geoperm", "true")

然后,您可以在显示工具提示之前检查现有权限:

if (navigator.geolocation) {
  // Show the arrow here, but only if there isn't a cookie stating we have permissions
  if(!$.cookie("geoperm")) $("#geo-helper").show();

  navigator.geolocation.getCurrentPosition(success, error);
} else {
  error('not supported');
}

答案 1 :(得分:0)

您始终可以检测用户是否允许/拒绝地理位置,并从那里隐藏指向接受/拒绝提示的大箭头。

if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(success, error);
} else {
    error('not supported');
}

答案 2 :(得分:-1)

请注意,如果浏览器本身不支持地理定位API,navigator.geolocation会返回false。它与用户可能(或可能不)授予网站访问其位置的权限有关。

有关详细信息,建议您阅读this html5doctor.com article