2013-07-18 106 views
0

我正在使用地理位置,但我在識別錯誤​​時遇到了問題,無法提供替代方案。地理位置錯誤檢測

我的HTML看起來像這樣:

<button onclick="getLocation()">Get your location now</button> 
<div id="google_canvas"></div> 
<p id = 'error'></p> 

我的劇本是這樣的:

function getLocation(){ 
    if(navigator.geolocation) 
    { 
    var map; 
    var mapOptions = 
    { 
     zoom: 13, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }   
    map = new google.maps.Map(document.getElementById('google_canvas'), mapOptions); 
    navigator.geolocation.getCurrentPosition(function(position) 
    { 
     var geolocate = new google.maps.LatLng(position.coords.latitude, position.coords.longitude),latitude=document.getElementById("latitude"),longitude=document.getElementById("longitude"); 
     var infowindow = new google.maps.InfoWindow(
     { 
     map: map, 
     position: geolocate, 
     content: 
     ' * output content within map * ' 
     }); 

     map.setCenter(geolocate); 
     latitude.value = position.coords.latitude; 
     longitude.value = position.coords.longitude; 
    });   
    } 

    else 
    { 
    document.getElementById('error').innerHTML = 'No Geolocation Support'; 
    } 

}; 
google.maps.event.addListener(map, 'idle', function() { 
}); 

我IE9的版本不支持地理位置(我試過他們的測試現場用自己的腳本),但它不會給我任何錯誤或警告,再加上如果我不允許在Firefox或Chrome中定位,我也不會收到任何錯誤或警告。

有人可以幫忙嗎?如果它無法運行,我可以提供一個替代方案,所以我不認爲我需要仔細查看錯誤代碼,但我確實需要能夠檢測到故障,因此我可以提供替代方案,但腳本中的錯誤部分無論如何不會運行。

我的問題確實是,爲什麼不能運行?

else 
{ 
document.getElementById('error').innerHTML = 'No Geolocation Support'; 
} 

感謝

回答

0

因爲如果你的瀏覽器不支持地理定位,以使在瀏覽器中禁用地理位置,支持它,你通常需要採取旁邊的地址欄看起來應該會出現在您的錯誤信息一個可以用來禁用/啓用地理位置的小圖標。

爲了讓你能偵測到先前的決定天氣,你啓用/禁用的地理位置,你可以使用我在這篇文章中提出的解決方案:

Is there a way of detecting whether a user has already given permission to use navigator.geolocation?

對於IE9它工作正常,唯一的一點是你應該點擊網頁底部的Allow blocked cnotent

enter image description here

+0

我沒有得到錯誤信息,但 - 如果我這樣做,這將是罰款 – user2246804

+0

在IE9看一看底部,然後點擊'允許阻止腳本...' –

+0

對不起邁赫迪我沒有得到那個錯誤,我承諾 – user2246804