Javascript:如何在X秒后以编程方式终止警报

时间:2014-11-03 23:06:20

标签: javascript html5 geolocation

当要求地理定位权限时,用户会获得一个弹出窗口,询问地理位置权限。

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

让我们说用户在5秒后没有回复,我想强迫错误回复"。 我该怎么做?

感谢。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分: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>