问候每个人, 我正在创建一个使用Geolocation API定位最终用户的Web应用程序。除了Internet Explorer 9之外,它几乎可以在我能想到的每个平台上运行得很好。但事情变得有点奇怪。如果我将Google工具栏加载到我的Internet Explorer浏览器窗口中,那么一切都会顺利进行。以下是我一直在使用的令人讨厌的代码块:
if (navigator.geolocation) {
var locationMarker = null;
navigator.geolocation.watchPosition(
function( position ){
var point = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
if (!locationMarker) {
locationMarker = addMarker(
position.coords.latitude,
position.coords.longitude,
"Initial Position"
);
}
else{
updateMarker(
locationMarker,
position.coords.latitude,
position.coords.longitude,
"Updated / Accurate Position"
);
};
map.setCenter(point);
if (map.zoom < 17){
map.setZoom(17);
};
},
function( error ){
console.log( "Something went wrong: ", error );
},
{
timeout: (5 * 1000),
maximumAge: (1000 * 60 * 15),
enableHighAccuracy: true
}
);
}
else {
alert("Geolocation is not supported by this browser");
}
每当我使用Internet Explorer 9访问我的应用程序时,我都会收到“此浏览器不支持地理位置”警报。这是除非我的Google工具栏处于有效状态。但是,如果Google工具栏处于有效状态,则Google工具栏会处理权限。
如何让地理定位在IE9中运行?我的应用程序在Safari,Firefox,Chrome,iOS和Android中完美运行。我完全难过了。
谢谢,Tyler Waring
答案 0 :(得分:4)
user1303379,
IE9和IE10都支持地理定位,但早期版本的IE不支持它(引用http://caniuse.com/#feat=geolocation)。以下是IE浏览器关于IE9 http://blogs.msdn.com/b/ie/archive/2011/02/17/w3c-geolocation-api-in-ie9.aspx中的地理位置的博客文章,这里是一个使用navigator.geolocation.watchPosition
的测试页,就像你在上面一样。
对于不支持地理定位的浏览器,您可以考虑使用此处列出的地理定位填充之一https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills
IE9&amp; IE10询问用户是否愿意分享他们的位置http://cl.ly/image/0X0o2F0s1N03我的猜测是您可能在某个时候拒绝访问您的位置。
Google工具栏添加了一项功能,可以在IE8天内确定地理位置http://googletoolbarhelp.blogspot.com/2010/02/google-toolbar-6413211732-for-ie.html根据您的描述,Google工具栏开始提供地理位置,因为原生IE9地理位置被拒绝访问。