2014-11-03 51 views
0

当要求获取地理位置权限时,用户将获得一个弹出窗口,要求获取地理位置权限。Javascript:如何以编程方式在X秒后终止警报

if (navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(successCallback, errorCallback); 
} 

假设用户5秒后没有反应,我想“强制errorCallback”。 我该怎么做?

谢谢。

回答

1

根据MDNgetCurrentPosition()的第三个参数是一个选项对象,允许您指定超时值。

该文档指定超时值是允许等待GPS位置的最长时间,因此您必须对其进行测试以确定它是否包含等待用户响应权限提示的时间。

0

我想,这或多或少取决于浏览器如何处理用户没有回答关于权限问题的事实。

总之,解决方法可能是一个给定的时间后重定向:

<html> 
    <body> 
     <h1>My page</h1> 

     <script> 
      var userdidnothing=false; 

      function TimeoutHandler() { 
       if (!userdidnothing) { 
        window.location.href="http://www.yoursecondpage.com"; 
       } 
      } 

      setTimeout("TimeoutHandler();",5000); 

      if (navigator.geolocation) { 
       navigator.geolocation.getCurrentPosition(function() { 
        userdidnothing=true; 
        alert("SUCCESS"); 
       }, 
       function() { 
        alert("ERROR"); 
       }); 
      } 
     </script> 

     Geolocation feature is helpful, if you need to know where you are... 
    </body> 
</html> 
相关问题