2012-05-29 54 views
2

問候大家, 我正在創建一個使用Geolocation API定位最終用戶的Web應用程序。除了Internet Explorer 9以外,它幾乎可以在任何我能想到的平臺上運行。儘管如此,事情會變得有點陌生。如果我已將我的Google工具欄加載到Internet Explorer瀏覽器窗口中,則所有內容都可以順暢地運行。這是問題的代碼塊,我一直努力着:ie9不支持地理定位?

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上完美運行。我完全難住。

感謝,泰勒華林

回答

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 & IE10地理位置polyfills的一個詢問用戶是否願意分享自己的位置,瀏覽器http://cl.ly/image/0X0o2F0s1N03我的猜測是,你可能有在某些時候拒絕訪問您的位置。

Google工具欄添加了一項功能,可以在IE8天后確定地理位置http://googletoolbarhelp.blogspot.com/2010/02/google-toolbar-6413211732-for-ie.html從您的描述看,Google工具欄開始提供地理定位,因爲原生IE9地理位置被拒絕訪問。

+0

奇妙。 thx夥計。 – albert