简单问题..如果用户选择不允许弹出地理定位器,如何设置重定向?如果允许和错误我已经涵盖。工作良好。但我不确定如何设置不允许选择。
function showLocation(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
//window.location = "/restaurant/latitude/40.714269/longitude/-74.005972/";
window.location = "/restaurant/";
}
function errorHandler(err) {
if(err.code == 1) {
alert("Error: Can not access!");
}else if( err.code == 2) {
alert("Error: Position is unavailable!");
}
}
function getLocation(){
if(navigator.geolocation){
// timeout at 60000 milliseconds (60 seconds)
var options = {timeout:60000};
navigator.geolocation.getCurrentPosition(showLocation, errorHandler, options);
}else{
alert("Sorry, browser does not support geolocation!");
}
}
答案 0 :(得分:1)
根据W3C Geolocation API spec,应该使用适当的失败原因调用错误处理程序。这包括用户拒绝的权限。
不幸的是,似乎有一个bug/feature in Firefox,如果从弹出窗口中选择Not Now
,则没有任何反应 - 不会调用错误处理程序。但是,如果您选择Never Share
,则会调用您的错误处理程序,并且使用您发布的代码,您会看到警告Error: Can not access!
。
Chrome中没有第三个选项(只有Allow
和Deny
),事情似乎在那里工作得很好。
另请参阅How to detect negative user response for geolocation建议解决方案(它涉及使用超时检测没有发生任何事情并将其视为与拒绝权限相同)
答案 1 :(得分:0)
我看到你试过设置window.location。为什么这对你不起作用?
window.location =“../ nonGeoLocationPage.html”