这个JS函数正常工作;但如果用户拒绝通过浏览器进行本地化,则不会。
我该如何修改?
function getPosition()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showmyPosition);
}
else
{
alert("Geolocation doesn't work");
}
}
function showmyPosition(position)
{
document.location.href="/near?lat="+ position.coords.latitude +"&lng="+ position.coords.longitude +"";
}
答案 0 :(得分:1)
navigation.geolocation
不检查用户是否接受地理定位,它仅检查浏览器是否支持地理定位。
但是,您可以为getCurrentPosition提供错误回调,从中可以读取错误。请参阅下面的示例
function getPosition() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showmyPosition, errorCallback);
}
else {
alert("Browser does not support geolocation");
}
}
function showmyPosition(position) {
document.location.href = "/near?lat=" + position.coords.latitude + "&lng=" + position.coords.longitude + "";
}
function errorCallback(error) {
if (error.code === 1) {
alert("User denied geolocation");
}
}
答案 1 :(得分:0)
如果用户不允许通过浏览器进行地理定位,则可以使用IP地址估算其位置。
的API注册