我使用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>
关于如何实现这一目标的任何想法?
答案 0 :(得分:3)
将超时调用存储在变量中。
var timeout = '5000';
var myTimeout;
window.onload = function(){
myTimeout = setTimeout(myRedirect, timeout);
}
当你想取消它时,清除该变量中的超时:
clearTimeout(myTimeout)
答案 1 :(得分:0)
您只需在单击链接时清除超时:
<a href="somepage.html" onclick="javascript:clearTimeout(t);">click here</a>
请注意,对象't'必须是setTimeout
函数返回的对象。所以现在看起来像:
var t;
window.onload = function() {
t = setTimeout(myRedirect, timeout);
}
另外,我可能会在这里指出,你在这里做的是一般不推荐(这个例外肯定有规则)。最好使用HTTP标头进行重定向,但由于我不知道您的要求究竟是什么,所以我无法发表评论。
答案 2 :(得分:0)
您应该使用clearTimeout取消setTimeout,请参阅示例here