2010-04-14 181 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