是否可以将事件附加到浏览器地理位置请求状态?
当条形图可见时向用户显示箭头......类似这样:
答案 0 :(得分:2)
例如,Firefox 29.0.1权限窗口:
无论如何,我建议改变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。