我正在编写一个需要用户当前地理位置的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中尝试使用“自己动手”这个代码,即使在Firefox和Chrome中也没有。我是代理人的幕后黑手。
我在函数showPosition()的主体开头引入了一个alert()语句,并且没有调用它。所以似乎这个功能根本没有被调用。我不知道如何解决这个问题。我迫切需要解决这个问题。我之前发布过这个问题,但没有得到回应,可能是因为没有明确地解决问题。所以我再次发布问题。
是否有其他方法可以通过计算机获取正在访问此应用程序的用户的地理位置。所以请帮忙。谢谢。
编辑:我在Tomcat上托管了这个文件。每次我执行时,都会给出错误代码3,即超时。但是两个月前我已经执行了相同的Javascript。然后它完美地执行。这是我浏览器当前版本的问题吗?
答案 0 :(得分:1)
代理没有什么可以处理html5地理位置api,如果你的机器上有一个,它会根据你的gps设备检测位置,第二个是使用wifi设备,最后它使用internet ip来检测您的位置,如果您使用代理连接,它将显示您的代理的位置。 您的问题可能是因为您未在浏览器上向localhost授予权限,请再次检查并重试您的代码。