navigator.geolocation.getCurrentPosition():如果用户说“不”,则触发回调?

时间:2011-11-17 23:33:23

标签: javascript geolocation

这是我的代码的近似值:

if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(
        function(position) {
          // success! 
        },
        function(error) {
          // error
        },
        { timeout: 10000 }
    );
} else {
    // your browser/device doesn't support geolocation
}

当此代码运行时,浏览器会正确地要求用户跟踪其物理位置的权限。如果用户说“是”,则它正确运行第一个参数('success')指定的函数。

我不清楚当用户说“不”时会发生什么。在我目前的测试中(在Firefox 7中),如果用户说“不”,则没有任何反应。我有点期待错误回调(第二个函数)运行,但事实并非如此。我希望对用户的否定响应做出反应(通过删除触发此调用的链接)。

2 个答案:

答案 0 :(得分:8)

你需要在navigator.geolocation.getCurrentPosition()的第二个回调中处理它,它会处理诸如用户拒绝其位置(以及其他事情)之类的问题。

navigator.geolocation.getCurrentPosition(fn, function(errorCode) {
    if (errorCode == 1) {
       alert('Y U NO GIVE LOCATION?');
    }
});

W3C Spec

List of error codes

答案 1 :(得分:0)

上一次回复的小修正

Slave
相关问题