一尘不染

Chrome中的HTML 5地理位置提示

html

刚刚开始进入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”这样的“域”。这就是为什么我没有得到提示吗?如果是这样,是否可以强制浏览器请求权限以获取用户的地理位置,在我的情况下是否可以?


阅读 431

收藏
2020-05-10

共1个答案

一尘不染

Chrome中存在使用file:///URI
进行地理位置定位的某种安全限制,尽管很遗憾,它似乎没有记录任何错误来表明这一点。它将在本地Web服务器上工作。如果安装了python,请尝试在测试文件所在的目录中打开命令提示符,然后发出命令:

python -m SimpleHTTPServer

它应该在端口8000上启动Web服务器(可能是其他端口,但是它将在控制台中告诉您正在监听的端口),然后浏览到http:// localhost:8000
/ mytestpage.html

如果您没有python,则Ruby中有等效的模块,或者Visual Web Developer Express带有内置的本地Web服务器。

2020-05-10