[英]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.