刚刚开始进入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 进行地理位置定位的某种安全限制,尽管很遗憾,它似乎没有记录任何错误来表明这一点。它将在本地Web服务器上工作。如果安装了python,请尝试在测试文件所在的目录中打开命令提示符,然后发出命令:
file:///
python -m SimpleHTTPServer
它应该在端口8000上启动Web服务器(可能是其他端口,但是它将在控制台中告诉您正在监听的端口),然后浏览到http:// localhost:8000 / mytestpage.html
如果您没有python,则Ruby中有等效的模块,或者Visual Web Developer Express带有内置的本地Web服务器。