簡體   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