Javascript 检查是否已在用户浏览器中关闭位置设置

Javascript 检查是否已在用户浏览器中关闭位置设置,javascript,jquery,browser,geolocation,Javascript,Jquery,Browser,Geolocation,我想隐藏()或显示()一个按钮,允许用户根据当前是否允许在浏览器设置中使用位置来使用其当前位置。 下面的代码只检查浏览器是否支持地理定位,而不检查特定用户是否允许 if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition); } else { x.innerHTML="Geolocation is not supported by this browser.";} }

我想隐藏()或显示()一个按钮,允许用户根据当前是否允许在浏览器设置中使用位置来使用其当前位置。 下面的代码只检查浏览器是否支持地理定位,而不检查特定用户是否允许

if (navigator.geolocation)  {
   navigator.geolocation.getCurrentPosition(showPosition);
   } else  {
 x.innerHTML="Geolocation is not supported by this browser.";}
 } 
我是否可以为他们的浏览器设置检测布尔值,让我知道当前是否允许使用位置

谢谢你的建议。

你看了吗

您要做的是检查错误,看看他们是允许还是拒绝请求

function getLocation() {
  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(showPosition,showError);
  } else {
    x.innerHTML = "Geolocation is not supported by this browser.";
  }
}

function showPosition(position) {
  x.innerHTML = "Latitude: " + position.coords.latitude + "<br>Longitude: " + position.coords.longitude;    
}

function showError(error) {
  switch(error.code) {
    case error.PERMISSION_DENIED:
      x.innerHTML = "User denied the request for Geolocation."
      break;
    case error.POSITION_UNAVAILABLE:
      x.innerHTML = "Location information is unavailable."
      break;
    case error.TIMEOUT:
      x.innerHTML = "The request to get user location timed out."
      break;
    case error.UNKNOWN_ERROR:
      x.innerHTML = "An unknown error occurred."
      break;
  }
}
函数getLocation(){ if(导航器.地理位置){ navigator.geolocation.getCurrentPosition(showPosition,showError); }否则{ x、 innerHTML=“此浏览器不支持地理位置。”; } } 功能显示位置(位置){ x、 innerHTML=“Latitude:”+position.coords.Latitude+”
经度:“+position.coords.Longitude; } 功能错误(错误){ 开关(错误代码){ 案例错误。权限被拒绝: x、 innerHTML=“用户拒绝了地理位置请求。” 打破 案例错误。位置不可用: x、 innerHTML=“位置信息不可用。” 打破 大小写错误。超时: x、 innerHTML=“获取用户位置的请求超时。” 打破 案例错误。未知错误: x、 innerHTML=“发生未知错误。” 打破 } }
下面的代码将允许您检查权限状态,而无需调用
导航器.geolocation
权限请求

:Chrome(43+)、Firefox(46+)、Edge和Opera

不支持:Safari(mac、ios)、Internet explorer、Android webview

navigator.permissions&&navigator.permissions.query({name:'geolocation'})
.然后(功能(许可状态){
if(PermissionStatus.state==“已授予”){
//允许
}else if(PermissionStatus.state=='prompt'){
//提示-尚未被拒绝或拒绝
}否则{
//否认
}
})
这是你的电话号码


其他浏览器上的兼容性未知。我还没有亲自测试过它,但请在下面进行自我测试和评论。

其他浏览器如IE/Safari/Opera如何?到目前为止,这些浏览器不支持它。我正在使用参考链接更新答案。此答案仅允许检查当前网站设置的用户权限状态。但如果用户已授予此网站的检查权限,但未授予浏览器的检查权限,则它将返回
“已授予”
事件。请参阅。我的浏览器支持GPS,但我已将其禁用。在这种情况下,我什么也得不到。我应该如何检测位置是否被禁用?