我有这段代码:
document.querySelector("#posBtn").addEventListener("click", function () { navigator.geolocation.getCurrentPosition(PositionFunction); });
function PositionFunction(p) {
console.log(p.coords.longitude);
}
看起来很简单,但它不起作用。为什么呢?
答案 0 :(得分:0)
似乎工作得很好!您将获得的是一个警告,即HTTP不再支持GeoLocation,您需要HTTPS才能工作。
getCurrentPosition()和watchPosition()不再适用于不安全的起源。要使用此功能,您应该考虑将应用程序切换到安全的来源,例如HTTPS。
document.querySelector("#posBtn").addEventListener("click", function () { navigator.geolocation.getCurrentPosition(PositionFunction); });
function PositionFunction(p) {
console.log(p.coords.longitude);
}
<button id="posBtn">
Get Longitude
</button>
更多详情here
答案 1 :(得分:0)
尝试捕获错误,以了解其无效的原因
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;
}
}