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 不运行?

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

谢谢

4

1 回答 1

0

对于您的错误消息,如果您的浏览器不支持地理定位,它将出现,要在支持它的浏览器上启用禁用地理定位,您通常需要查看地址栏旁边应该有一个小图标,您可以使用它来禁用/启用地理定位.

为了让您检测之前启用/禁用地理定位的决策天气,您可以使用我在本文中建议的解决方案:

有没有办法检测用户是否已经授予使用 navigator.geolocation 的权限?

对于 IE9 它工作正常,唯一的事情是你应该点击Allow blocked cnotent网页底部的。

在此处输入图像描述

于 2013-07-18T18:15:18.560 回答