2010-04-14 136 views
15

我需要通過javascript停止所有頁面重定向。如何停止頁面重定向

我有一些腳本會將頁面重定向到其他位置。 如何通過jquery或javascript停止頁面上的所有頁面重定向。

回答

1

如果它只是重​​定向通過鏈接點擊,在jQuery的你可以這樣做:

$(".someClass a").unbind('click'); 

如果它是一個現有的頁面重定向,你需要給我們介紹一下什麼樣的重定向這是一些更多的信息,所以我們可以進一步幫助。

希望這有助於你

+1

假設所有錨都被jQuery綁定。爲了確保應該使用$(a).unbind('click'),$(a).die(),$(a).removeAttr('onClick') – jAndy 2010-04-14 07:02:07

+0

在jQuery> = 1.7中,應該使用'。 off()'而不是'.unbind()' – developius 2016-01-27 19:27:47

0

AFAIK這是不可能的,因爲頁面重定向可以以多種方式出現。他可以點擊錨標籤,可以使用不同的動作提交表單,也可以在按鈕單擊時將window.location設置爲另一個頁面,並調用服務器代碼進行重定向。

而且你將無法檢測到其中很多。

2

如果我正確理解你,你需要阻止用戶離開頁面?

如果是這樣,馬科斯Placona的回答是它的一個組成部分 - 雖然所有你真正需要的是:

$("a").click(function(e) { e.preventDefault(); }); 

您也不想讓人打F5我猜?那很難。防止按鍵上的默認值,跨瀏覽器是可怕的。但一對夫婦,在某些瀏覽器中運行的代碼都低於此:

function disableF5() { // IE 
    document.onkeydown = function() { 
     if (window.event && window.event.keyCode == 116) { // Capture and remap F5 
      window.event.keyCode = 505; 
     } 
     if (window.event && window.event.keyCode == 505) { // New action for F5 
     return false; // Must return false or the browser will refresh anyway 
     } 
    } 
} 
function disableF5v2() { // FIREFOX 
    $(this).keypress(function(e) { 
     if (e.keyCode == 116) { 
      e.preventDefault(); 
    return false; 
     } 
    }); 
} 

然而,跨瀏覽器的問題可以部分地解決與 -

window.onbeforeunload = function(e) { 
    var message = "Your confirmation message goes here.", e = e || window.event; 
    // For IE and Firefox 
if (e) { 
    e.returnValue = message; 
} 
// For Safari 
    return message; 
}; 

希望所有幫助反正。最後一位代碼來自本網站here上的另一個問題。 Rob

+0

認真地說,有人需要投票Rahul的回答。他可能會說「你不能在一個頁面上有文字,一站式」。 – LiverpoolsNumber9 2010-04-15 11:24:51

2

您是否試圖阻止iframe斷路器?例如:

<script language="JavaScript" type="text/javascript"> 
<!-- 
function breakout_of_frame() 
{ 
    if (top.location != location) { 
    top.location.href = document.location.href ; 
    } 
} 
--> 
</script> 

如果是這樣,您不能。

+1

HTML5支持'沙盒'iframe。 「阻止內容瀏覽其頂級瀏覽上下文」。 http://www.w3schools.com/tags/att_iframe_sandbox.asp – kev 2016-10-20 01:03:09

38

您可以通過執行以下操作來停止重定向。

<script language="JavaScript" type="text/javascript"> 
    //<![CDATA[ 
     window.onbeforeunload = function(){ 
      return 'Are you sure you want to leave?'; 
     }; 
    //]]> 
</script> 

不確定是否所有的瀏覽器都支持這個,但是應該這樣做。

+0

完美的作品!謝謝 – vrunoa 2012-03-30 20:24:25

+0

爲我工作。謝謝 – 2018-02-08 00:13:58