0

我正在编写一个需要用户当前地理位置的 Web 应用程序。为了识别地理位置,我使用了以下使用 HTML5 地理位置 api 的代码。我已从 W3schools 获取此代码。

<!DOCTYPE html>
<html>
<body>
<p id="demo">Click the button to get your coordinates:</p>
<button onclick="getLocation()">Try It</button>
<script>
   var x=document.getElementById("demo");
   function getLocation()
    {
      if (navigator.geolocation)
        { 
           navigator.geolocation.getCurrentPosition(showPosition);
         }
     else{x.innerHTML="Geolocation is not supported by this browser.";}
    }
   function showPosition(position)
    {
        x.innerHTML="Latitude: " + position.coords.latitude + 
   "<br>Longitude: " + position.coords.longitude;   
    }
</script>
</body>
</html>

我已经用 Tomcat 运行了这段代码,但它在 Firefox 和 Chrome 中都不起作用。然后我在 W3Schools 中使用“Try It Yourself”尝试了这段代码,即使在 Firefox 和 Chrome 中也无法正常工作。我在代理后面。

我在函数 showPosition() 的开头引入了一个 alert() 语句,它没有被调用。所以看起来这个函数根本没有被调用。我不知道如何解决这个问题。我迫切需要解决这个问题。我之前已经发布了这个问题,但可能因为没有清楚地描述问题而没有得到回应。所以我再次发布问题。

有没有其他方法可以获取通过计算机访问此应用程序的用户的地理位置。所以请帮忙。谢谢你。

编辑:我在 Tomcat 上托管了这个文件。每次我执行时,它都会给出错误代码 3,即超时。但是两个月前我已经执行了相同的 Javascript。然后它完美地执行了。我的浏览器当前版本有问题吗?

4

1 回答 1

1

代理与 html5 地理定位 api 没有任何关系,如果您的机器上有一个 gps 设备,它会根据您的 gps 设备检测位置,其次它会使用 wifi 设备,最后它使用互联网 ip 来检测您的位置,如果您使用代理连接,它将显示您的代理的位置。您的问题可能是因为您没有在浏览器上授予 localhost 的权限,请再次检查并重试您的代码。

于 2013-06-02T11:36:48.623 回答