2013-02-13 3 views
13

私は現在、自分の現在地を使用することを許可しているかどうかに基づいて現在の場所を使用できるようにするボタンを隠す()ブラウザの設定。 以下のコードでは、ブラウザがジオロケーションをサポートしているかどうかだけチェックし、特定のユーザーがジオロケーションを許可しているかどうかを確認しません。ユーザーのブラウザで場所の設定がオフになっているかどうかを確認してください。

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

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

ありがとうございます。

答えて

18

はあなたが何をしたいのか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; 
    } 
} 
+2

HTTPSです:// developer.mozilla.org/en-US/docs/Using_geolocation –

4

次のコードは、あなたがここにクローム43+とFirefoxのnavigator.geolocation許可要求46+

navigator.permissions && navigator.permissions.query({name: 'geolocation'}).then(function(PermissionStatus) { 
    if(PermissionStatus.state == 'granted'){ 
      //allowed 
    }else{ 
     //denied 
    } 
}) 

を起動せずに許可状態を確認することができますReference Link

+0

IE/Safari/Operaのような他のブラウザはどうですか? –

+0

現在のところ、そのブラウザではサポートされていません。私は参照リンクで答えを更新しています。 –

関連する問題