Chrome 中的 HTML5 地理位置提示

标签 html google-chrome geolocation file-uri

刚开始接触 HTML 5 并测试地理位置……到目前为止很喜欢。虽然我遇到了一些减速带......当我尝试获取我的地理位置时,chrome 会自动阻止页面获取我的位置。这不会发生在其他网站,例如以下网站:

http://html5demos.com/geo

我正在使用的脚本:

<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/

相关文章:

javascript - HTML5 Web Workers 在 Firefox 4 中工作,但在 Chrome 12.0.742.122 中不工作

css - 使用百分比文本缩进时,Chrome 不遵循正确的宽度

c# - 从 Windows 应用程序获取 IP 地址位置

html - 表 rowspan 错误 html 和 css

html - CSS网格,列的水平间距:最小内容似乎没有达到我的期望

javascript - 如何为包括视频/div/iframe 在内的所有元素翻转 X?

android - Phonegap Android 和 GPS 卫星

mysql - 如何优化mysql中的地理定位数据库以进行欧几里德距离搜索/查询

javascript - 纯JS跨源iframe内的视差效果?

c# - 将用户生成的内容添加到 asp.net 中的数据库