如何在网页中允许地理定位
Posted
技术标签:
【中文标题】如何在网页中允许地理定位【英文标题】:how to allow geolocation in web page 【发布时间】:2014-10-08 13:13:21 【问题描述】:我一直在尝试运行此代码来获取纬度和经度。我的 IE 浏览器显示不支持地理定位服务的消息,即使我在 chrome 中设置位置设置以允许所有站点进行跟踪,Chrome 仍显示“此页面已被阻止跟踪您的位置”。 请帮忙。
<html>
<head></head>
<body>
<input type="button" id="btnSearch" value="Search" onclick="doSomething();"/>
<script>
function doSomething()
if (navigator.geolocation)
navigator.geolocation.getCurrentPosition(handle_geolocation_query);
function handle_geolocation_query(position)
alert('Lat: ' + position.coords.latitude + ' ' + 'Lon: ' + position.coords.latitude);
else
alert("I'm sorry, but geolocation services are not supported by your browser.");
</script>
</body>
</html>
【问题讨论】:
如何加载页面? HTTP?本地文件? 对什么?第一个问题不是是/否,接下来的两个问题是互斥的,不能都是“是”。 对不起.....我将它保存为.html文件并双击它....所以本地 这可能是问题所在。对用户信息的大量访问被锁定在本地文件中。 我得到了一半...我需要在 localhost 中运行它.....怎么做? 【参考方案1】:将 handle_geolocation_query() 的范围更改为外部,它应该可以工作。更改后它可以在我的 IE 和 firefox 上运行。
<html>
<head></head>
<body>
<input type="button" id="btnSearch" value="Search" onclick="doSomething();"/>
<script>
function doSomething()
if (navigator.geolocation)
navigator.geolocation.getCurrentPosition(handle_geolocation_query);
else
alert("I'm sorry, but geolocation services are not supported by your browser.");
function handle_geolocation_query(position)
alert('Lat: ' + position.coords.latitude + ' ' + 'Lon: ' + position.coords.latitude);
</script>
</body>
</html>
【讨论】:
【参考方案2】:就我而言,问题是我从文件系统 (file:///...
) 打开了 HTML 文件。浏览器通常会尝试阻止从本地文件访问个人信息(包括位置),因此您必须通过网络服务器(即使它是本地的)提供文件。
如果您安装了 Python,则为位于文件系统中的静态网站提供服务的一种简单方法是 SimpleHTTPServer
。只需使用命令提示符导航到该文件夹,然后说python -m SimpleHTTPServer
,然后您就可以在localhost:8000
上查看该文件。
【讨论】:
【参考方案3】:尝试删除包装它的 if 语句,看看会发生什么。 navigator.geolocation.getCurrentPosition 是调用浏览器访问地理服务权限的函数,所以我认为的问题是它没有达到那个点并且直接跳到 else 语句。
Here is a source 应该可以帮助您清理地理代码。
【讨论】:
您的代码对我来说在 Chrome 中完美运行,这告诉我它可能是您的系统在本地出现的问题,请查看此帖子以获取修复。 ***.com/questions/5423938/…以上是关于如何在网页中允许地理定位的主要内容,如果未能解决你的问题,请参考以下文章
如果用户未回答 JavaScript 地理定位小狗,如何继续执行代码?