Javascript, jquery地理定位bug

javascript, jquery geolocation bug

本文关键字:定位 bug jquery Javascript      更新时间:2023-09-26

我有以下代码:

if (navigator.geolocation) {
  navigator.geolocation.getCurrentPosition(function(posi) {
    var lat = posi.coords.latitude;
    var lon = posi.coords.longitude;
    console.log(lat);
  }, showError);
} else {
  $(".position").html("Geolocation is not supported by this browser");
}
function showError(error) {
  switch (error.code) {
    case error.PERMISSION_DENIED:
      alert("User denied the request for Geolocation.");
      break;
    case error.POSITION_UNAVAILABLE:
      alert("Location information is unavailable.");
      break;
    case error.TIMEOUT:
      alert("The request to get user location timed out.");
      break;
    case error.UNKNOWN_ERROR:
      alert("An unknown error occurred.");
      break;
  }
}
alert(lat);
$(".weather").html("<p>" + lat + "</p>");

的问题是,在底部的警告(后期),它说它是未定义的,并且在if条件开始时console.log(lat)工作得很好!底部出了什么问题?我已经尝试使全局变量长,晚之前,如果但同样的事情发生。

作为参考,以下是根据前面的注释更正的代码:

function showError(error) {
  [...] // No change.
}
if (navigator.geolocation) {
  navigator.geolocation.getCurrentPosition(function(posi) {
    var lat = posi.coords.latitude;
    var lon = posi.coords.longitude;
    console.log(lat);
    alert(lat);
    $(".weather").html("<p>" + lat + "</p>");
  }, showError);
} else {
  $(".position").html("Geolocation is not supported by this browser");
}