ie9不支持地理位置?

时间:2012-05-29 20:06:20

标签: geolocation internet-explorer-9

问候每个人,        我正在创建一个使用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

1 个答案:

答案 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地理位置被拒绝访问。