0

好的,所以我有如下代码:

navigator.geolocation.getCurrentPosition (
    function (e) {
        alert('ok');
    }, function (e) {
        alert('denied');
    } 
);

我可以在页面加载时调用它,如果权限被拒绝,我将隐藏依赖于 geoloc 信息的按钮和功能。

但是,我不想在页面加载时请求权限,而只是在用户选择单击 geoloc 按钮之一时按需请求。

因此,在这种情况下,假设用户到达我的页面,之前决定拒绝访问地理定位 API,是否可以判断权限之前已被拒绝,以便我可以隐藏按钮而不必等到他们再次单击其中一个按钮?

4

2 回答 2

0

您的意思是拒绝访问另一个网站,还是以前访问您的网站?

如果是前者,为什么要假设您受制于该决定?也就是说,不要担心,无论如何再问一次。

如果是后者,您可能应该在您的站点上存储用户会话期间的决定。如果您使用服务器会话或使用简单的 cookie,则可以在服务器端执行此操作。

于 2012-07-08T08:54:14.500 回答
0

您可以将结果存储在浏览器中,例如使用 LocalStorage 或 cookie。但是,如果用户第一次拒绝访问并不意味着他下次会这样做。但是,如果您隐藏或禁用按钮,即使他愿意,他也无法使用该功能。现在,如果他连续否认 10 次,或者类似的次数,那就更有意义了。

于 2012-07-08T09:03:11.963 回答