如何停止页面重定向

时间:2010-04-14 06:44:59

标签: javascript jquery

我需要通过javascript停止所有页面重定向。

我有一些脚本会将页面重定向到其他位置。 如何通过jquery或javascript停止页面上的所有页面重定向。

5 个答案:

答案 0 :(得分:48)

您可以通过执行以下操作来停止重定向。

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

不确定是否所有浏览器都支持此功能,但这应该可以解决问题。

答案 1 :(得分:2)

如果我理解正确,您需要阻止用户离开页面吗?

如果是这样,Marcos 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上的另一个问题。 罗布

答案 2 :(得分:2)

您是否尝试停止iframe断路器?类似的东西:

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

如果是这样,你就不能。

答案 3 :(得分:1)

如果它只通过链接点击重定向,那么在jQuery中你可以这样做:

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

如果是现有的网页重定向,您需要向我们提供一些有关此类重定向的更多信息,以便我们进一步提供帮助。

希望这有助于你

答案 4 :(得分:-2)

AFAIK这是不可能的,因为页面重定向可以以多种方式发生。他可以单击一个锚标签,可以提交一个具有不同动作的表单,在按钮单击时将window.location设置为另一个页面,并调用服务器代码进行重定向。

你将无法检测到其中的许多内容。