刚开始接触 HTML 5 并测试地理位置……到目前为止很喜欢。虽然我遇到了一些减速带......当我尝试获取我的地理位置时,chrome 会自动阻止页面获取我的位置。这不会发生在其他网站,例如以下网站:
我正在使用的脚本:
<script type="text/javascript" JavaScript" SRC="geo.js"></script>
<script type="text/javascript" JavaScript" SRC="Utility.js"></script>
<script type="text/javascript" JavaScript" SRC="jquery.js"></script>
<script type="text/javascript" JavaScript" SRC="modernizr.js"></script>
function get_location() {
if (geo_position_js.init()) {
geo_position_js.getCurrentPosition(show_map, handle_error);
}
}
function show_map(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
alert("lat:" + latitude + " long:" + longitude);
}
function handle_error(err) {
alert(err.code);
if (err.code == 1) {
// user said no!
}
}
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(show_map, handle_error);
} else {
error('not supported');
}
我正在我机器上的本地目录中对此进行测试,因此实际上并没有像“http://whatever.com/mytestpage.html”这样的“域”。这就是我没有收到提示的原因吗?如果是这样,是否可以强制浏览器请求获取用户地理位置的权限,在我的场景中是否可能?
最佳答案
在 Chrome 中存在某种安全限制,用于使用来自 file:///
URI 的地理定位,但不幸的是它似乎没有记录任何错误来表明这一点。它将在本地网络服务器上运行。如果安装了 python,请尝试在测试文件所在的目录中打开命令提示符并发出命令:
python -m SimpleHTTPServer
它应该在端口 8000 上启动一个 Web 服务器(可能是其他端口,但它会在控制台中告诉您它正在监听的端口),然后浏览到 http://localhost:8000/mytestpage.html
如果您没有 python,则可以使用 Ruby 中的等效模块,或者 Visual Web Developer Express 带有内置的本地 Web 服务器。
关于Chrome 中的 HTML5 地理位置提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5423938/