如何通过单击取消javascript函数启动的定时重定向

How to cancel a timed redirection started by a javascript function with a click?

本文关键字:启动 定时 重定向 函数 javascript 何通过 单击 取消      更新时间:2023-09-26

我有一个javascript定时重定向功能,可以正确地使用以下代码,如果(并且只有当)用户在等待期间点击了网站中的任何位置,然后页面自动重定向,我希望取消这个功能;

<script type="text/JavaScript">
<!--
setTimeout("location.href = 'http://www.myurl.html';",30000);
-->
</script>

我应该使用什么代码,在哪里?谢谢

您应该将变量设为全局变量,这样您就可以在任何需要的地方停止它。

var redirect = setTimeout(redirection, 30000);
document.body.onclick = function() {
    clearTimeout(redirect);
}
function redirecton() {
    location.href = 'http://www.myurl.html';
}

在javascript:

var timeout = setTimeout("location.href = 'http://www.myurl.html';", 30000);
   window.onclick= function () {
        clearTimeout(timeout);
     }  

工作FIDDLE

注意:Fiddle会在重定向时出错(因为Fiddle在加载其他URL时遇到了一些问题)。它工作正常。。试试

Jquery让您的任务变得超级简单:

var timeout = setTimeout(function () {
    location.href = 'http://www.myurl.html';
}, 30000);
$("*").click(function () {
    clearTimeout(timeout);
});

使用window.clearTimeout停止。

<script type="text/JavaScript">
    var timeoutId = setTimeout("location.href = 'http://www.myurl.html';",30000);
    // for some element x
    x.onclick = function(){
            clearTimeout(timeoutId);
    }
</script>

假设您使用的是jQuery:

var timeout = setTimeout(function(){
    location.href = 'http://www.myurl.html';
},30000);
$("body").click(function(){
    clearTimeout(timeout);    
});