这个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 +"";
}
最佳答案
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");
}
}
关于Javascripts 地理定位 - 用户拒绝提供数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32909353/