IE9 以降の位置情報に関していくつか問題があります。以下のスクリプトは、他のすべてのブラウザーでうまく機能し、#loader でメッセージをフェードアウトし、その場所に最も近い場所を表示します。ただし、ie9 以降では、物理的な場所の使用を要求するときに「許可」を選択しても、#loader はまったくフェードアウトしません。
任意の支援をいただければ幸いです。
<script type="text/javascript">
$(document).ready(function(){
function success(position) {
var s = document.querySelector('#status');
$("#loader").fadeOut();
if (s.className == 'success') {
return;
}
s.innerHTML = "found you!";
s.className = 'success';
$("input[name='user_lat']").val(position.coords.longitude);
$("input[name='user_lng']").val(position.coords.latitude);
if (navigator.geolocation) {
var form= $("#geofinder_form");
var url = $(form).attr('action');
var data = $(form).serialize();
$.post(url, data, function() {$('#store-details').load('http://www.myurl.com/location/'+position.coords.latitude+','+position.coords.longitude+'/100000'); return false;});
}
}
function error(msg) {
var s = document.querySelector('#status');
s.innerHTML = typeof msg == 'string' ? msg : "failed";
s.className = 'fail';
// console.log(arguments);
}
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(success, error);
} else {
error('not supported');
}
});
</script>