Javascript navigator.geolocation.getCurrentPosition用户不允许';第一次尝试成功或失败都是不可能的
我对地理定位api有一个奇怪的问题。目前我在chrome中注意到了这一点,但我认为它也会在其他浏览器中出现 问题是,当我第一次使用getCurrentPosition时,浏览器的“允许”按钮就会出现。如果我只是等待一段较长的时间,比如说30秒,然后按allow。未触发失败回调的成功 这是我正在使用的代码Javascript navigator.geolocation.getCurrentPosition用户不允许';第一次尝试成功或失败都是不可能的,javascript,html,Javascript,Html,我对地理定位api有一个奇怪的问题。目前我在chrome中注意到了这一点,但我认为它也会在其他浏览器中出现 问题是,当我第一次使用getCurrentPosition时,浏览器的“允许”按钮就会出现。如果我只是等待一段较长的时间,比如说30秒,然后按allow。未触发失败回调的成功 这是我正在使用的代码 if(navigator.geolocation) { navigator.geolocation.getCurrentPosition(function(_position) {
if(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(_position) {
console.log("success");
console.log(_position);
},
function(_error) {
console.log("failed");
console.log(_error);
}, {timeout: 5000});
}else{
console.log("not supported");
}
我还尝试了{maximumAge:60000,timeout:5000,enableHighAccurance:true}
如果用户允许,地理定位在第二个时间槽工作。只是第一次,如果他们花太长时间按下“允许”按钮,则不会触发回调
我想这可能是因为如果他们在超时时间内不按allow,那么就会发生此错误,但事实似乎并非如此
当我独自尝试时,每次都能奏效。我所能想到的是,它找不到回调。什么样的情况会导致这种情况发生
编辑:
我只是在错误发生时隔离。设法让它在JSFIDLE中发生。转到chrome中的设置,清除JSFIDLE的位置权限。关闭浏览器并再次加载JSFIDLE。单击getlocation等待一点(不要认为等待多长时间很重要),然后单击allow。什么也不会发生
现在返回并删除JSFIDLE的权限,但这次不要关闭浏览器。单击“地理定位”,等待,然后单击“允许”,它就可以工作了。第一次似乎不起作用