繁体   English   中英

如何在点击事件中禁用Javascript重定向

[英]How to disable Javascript redirect on click event

我正在使用Javascript重定向在X秒后重定向访问者。 但是,页面上还有一个链接可以将访问者带到同一页面。 如果访问者首先单击链接,我想停止重定向。

请注意,点击链接会在新窗口中打开,但javascript重定向会在同一窗口中打开。

这是我的HTML页面中正在使用的代码,

JavaScript重定向代码:

<script>
<!-- 
timeout = '5000'; // milliseconds/1000th of a sec
window.onload = setTimeout(myRedirect, timeout); // ensure we load the whole page

function myRedirect() {

window.location = "http://www.mypage.com/page1.html";
}
//-->
</script>

并且此链接在新窗口中打开:

<a href="http://www.mypage.com/page2.php" target="_blank">Click Here</a>

关于如何实现这一目标的任何想法?

将超时呼叫存储在变量中。

var timeout = '5000';
var myTimeout;
window.onload = function(){
    myTimeout = setTimeout(myRedirect, timeout);
}

当您希望取消它时,请在该变量中清除该超时:

clearTimeout(myTimeout)

单击链接时,您只需要清除超时:

<a href="somepage.html" onclick="javascript:clearTimeout(t);">click here</a>

请注意,对象“ t”必须是从setTimeout函数返回的对象。 所以现在看起来像:

var t;

window.onload = function() {
    t = setTimeout(myRedirect, timeout);
}

另外,我可能在这里指出, 通常不建议您在此处执行操作(肯定有例外的规则)。 最好使用HTTP标头进行重定向,但是由于我不知道您的要求是什么,因此我无法发表评论。

您应该使用clearTimeout取消setTimeout,请参见此处的示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM