22

ブラウザの設定で現在の場所の使用を許可しているかどうかに基づいて、ユーザーが現在の場所を使用できるようにするボタンをhide()またはshow()したいと思います。以下のコードは、ブラウザがジオロケーションをサポートしているかどうかのみをチェックし、特定のユーザーがジオロケーションを許可しているかどうかはチェックしません。

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

場所が現在許可されているかどうかを知らせる、ブラウザ設定で検出できるブール値はありますか?

提案をありがとう。

4

2 に答える 2

40

http://www.w3schools.com/html/html5_geolocation.aspを読んだことがありますか

あなたがしたいのは、エラーをチェックして、エラーがそれを許可したか、要求を拒否したかを確認することです。

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;
  }
}
于 2013-02-13T20:03:32.063 に答える