W3C Geolocation API无法在Chrome中运行

Lan*_*opp 18 javascript firefox google-chrome geolocation

以下代码适用于Firefox,但不适用于Google Chrome:

<!DOCTYPE html>
<html>
    <head>
        <title>title</title>
        <script type="text/javascript">
            var successCallback = function(data) {
                console.log('latitude: ' + data.coords.latitude + ' longitude: ' + data.coords.longitude);
            };

            var failureCallback = function() {
                console.log('location failure :(');
            };

            var logLocation = function() {

                //determine if the handset has client side geo location capabilities
                if(navigator.geolocation){
                   navigator.geolocation.getCurrentPosition(successCallback, failureCallback);
                }
                else{
                   alert("Functionality not available");
                }
            };

            logLocation();
            setTimeout(logLocation, 5000);
        </script>
    </head>
    <body>
        <p>Testing</p>
    <body>
</html>
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?我认为谷歌Chrome应该支持W3C Geolocation API.

no.*_*ing 21

对我来说非常适合 - 在Win 7上使用Chrome 11和Firefox 4.0.1

  • 确保您未在​​Chrome中停用位置跟踪: Options > Under the Hood > Content Settings > Location
  • 由于安全限制,加载该file:///方案的资源不允许访问位置.请参阅Chrome中的HTML 5地理位置提示.


Mar*_*ark 18

如果您的域名不安全(例如HTTP而不是HTTPS),则不允许您访问Chrome中的位置.这是自Chrome版本50(太平洋标准时间2016年4月20日下午12点).

有关详细信息,请参阅https://developers.google.com/web/updates/2016/04/geolocation-on-secure-contexts-only.


kur*_*kan 10

在2017年:

注意:从Chrome 50开始,Geolocation API仅适用于HTTPS等安全上下文.如果您的站点托管在非安全源(例如HTTP)上,则获取用户位置的请求将不再起作用.

地理位置API从Chrome 50中的不安全起源中删除