Как остановить перенаправление страницы

Мне нужно остановить перенаправление страницы через javascript.

У меня есть script, который перенаправляет страницу в другое место. Как я могу остановить перенаправление страницы на моей странице через jquery или javascript.

Ответы

Ответ 1

Вы можете остановить перенаправление, выполнив следующие действия.

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

Не уверен, что все браузеры поддерживают это, но это должно сделать трюк.

Ответ 2

Если я правильно понимаю вас, вам нужно остановить пользователей, перемещающихся далеко от страницы?

Если это так, ответ Маркоса Плэкона является его частью, хотя все, что вам действительно нужно, это:

$("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;
};

Надеюсь, что все это поможет. Последний бит кода относится к другому вопросу на этом сайте здесь. Rob

Ответ 3

Вы пытаетесь остановить прерыватель iframe? Что-то вроде:

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

Если это так, вы не можете.

Ответ 4

Если он перенаправляется только через ссылки, в jQuery вы можете сделать это:

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

если он перенаправляет существующую страницу, вам нужно предоставить нам дополнительную информацию о том, какое это перенаправление, поэтому мы можем помочь дальше.

Надеюсь, это поможет вам

Ответ 5

AFAIK это будет невозможно, поскольку перенаправление страниц может происходить разными способами. Он может щелкнуть по привязному тегу, может отправить форму с различным действием, установить window.location на другую страницу при нажатии кнопки и вызвать код сервера для перенаправления.

И вы не сможете обнаружить многие из них.