Javascript 地理定位在简单js中不起作用

Javascript 地理定位在简单js中不起作用,javascript,Javascript,我有以下代码: document.querySelector("#posBtn").addEventListener("click", function () { navigator.geolocation.getCurrentPosition(PositionFunction); }); function PositionFunction(p) { console.log(p.coords.longitude); } 它看起来很简单,但不起作用。为什么?它似乎工作得很好!您将得到

我有以下代码:

document.querySelector("#posBtn").addEventListener("click", function () { navigator.geolocation.getCurrentPosition(PositionFunction); });

function PositionFunction(p) {

    console.log(p.coords.longitude);
}

它看起来很简单,但不起作用。为什么?

它似乎工作得很好!您将得到一个警告,即HTTP不再支持地理位置,您需要HTTPS才能使其工作

getCurrentPosition()和watchPosition()不再适用于不安全的源。要使用这个特性,您应该考虑将应用程序切换到安全的原点,例如HTTPS.< /P>。
document.querySelector(“#posBtn”).addEventListener(“单击”,函数(){navigator.geolocation.getCurrentPosition(PositionFunction);});
函数位置函数(p){
console.log(p.coords.longitude);
}

获得经度

尝试捕捉错误,了解其不起作用的原因

document.querySelector("#posBtn").addEventListener("click",function(){
         if (navigator.geolocation) {
              navigator.geolocation.getCurrentPosition(PositionFunction, showError);
          } else {
              console.log("Geolocation is not supported by this browser.");
          }

      });

      function PositionFunction(p) {
         console.log(p.coords.longitude);
      };

      function showError(error) {
        switch(error.code) {
            case error.PERMISSION_DENIED:
                console.log("User denied the request for Geolocation.");
                break;
            case error.POSITION_UNAVAILABLE:
                console.log("Location information is unavailable.");
                break;
            case error.TIMEOUT:
                console.log("The request to get user location timed out.");
                break;
            case error.UNKNOWN_ERROR:
                console.log("An unknown error occurred.");
                break;
        }
    }

查看工作示例:

添加一个错误回调函数来调试它。请参阅此处