只是开始进入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中有一些安全限制,用于从文件:/// URI中使用地理位置,但不幸的是,它似乎没有记录任何错误来指示。它将从本地Web服务器工作。如果您已经安装了python,请尝试在测试文件所在的目录中打开命令提示符,然后发出命令:
python -m SimpleHTTPServer
它应该启动一个web服务器在端口8000(可能是别的,但它会告诉你在控制台什么端口,它正在侦听),然后浏览到http://localhost:8000/mytestpage.html
如果你没有python,在Ruby中有等效的模块,或者Visual Web Developer Express带有一个内置的本地Web服务器。