2

現在、ユーザーがブラウザの位置情報サービスを許可または拒否しているかどうかを判断できます。しかし、ユーザーのブラウザが以前に許可を許可したかどうかを検出するにはどうすればよいですか?「設定メッセージ」をユーザーに再度表示したくありません。

$("#updateLocation").click(function(e){
      e.preventdefault;
      navigator.geolocation.getCurrentPosition(allowLocation,deniedLocation);
      return false;
});

function allowLocation(position){
// codes
}

function deniedLocation(){
// codes
}
4

2 に答える 2

1

これは、キーと値のペアを作成できるHTML5 localstorageを利用することで簡単に実行できます。

$("#updateLocation").click(function(e){
      e.preventdefault;
      if(localStorage.location == undefined){
            var ip-located-geo-location = navigator.geolocation.getCurrentPosition();
            // code to get ip-located geolocation
            var user_defined_location = prompt("Please enter your location", ip-located-geo-location);
            localStorage.location = user_defined_location;
      }
      else{
            // use localStorage.location
      }
      return false;
});

場所が以前に保存されていない場合は、user_defined_location を要求し、ip-located-position も表示して、localStorage を更新します。これにより、次回ユーザーが好みに応じて場所をリセットする必要がなくなります。

于 2012-09-27T19:56:28.560 に答える