2015-09-18 2 views
2

Я хочу, чтобы остановить навигацию по нажатию кнопки назад в браузереКак остановка навигации на задней кнопки

$(window).on('beforeunload', function(e){ 
    realTimePersonalizationTest(e); 
}); 

function realTimePersonalizationTest(e) { 
    event.preventDefault(); 
} 

Но этот код работает. это переход на предыдущую страницу.

+0

beforeunload - это особый тип события, в котором вы можете предотвратить Default. Ожидается, что функция вернет строку, которая будет предложена пользователю, когда он попытается вернуться назад. Это все, что ты можешь сделать. – Vivek

+0

Почему вы хотите ограничить навигацию? В чем причина и конечная цель? Возможно, вместе мы сможем найти лучшее решение. –

ответ

2

Предотвращение навигации по нажатию кнопки «Назад» звучит неправильно.
Единственное, что вы можете сделать с событием beforeunload, - это вернуть строку, чтобы вызвать пользователя до того, как он покинет страницу.

$(window).on('beforeunload', function(e){ 
    return "Are you sure? Please, don't leave."; 
}); 

Например, откройте this JSFiddle demo и попытайтесь его закрыть.

Скорее всего, любые другие реализации не будут поддерживаться браузерами из-за соображений безопасности. Кнопка «Назад» - это «аппаратная» кнопка, которая, как предполагается, всегда перемещается на предыдущую страницу.

Вы можете реализовать это ограничение на стороне сервера, используя перенаправления, переменные сеанса и т. Д.
Однако почему нужно отключить это поведение? Я твердо верю, что должно быть другое, более последовательное, браузерное и удобное для пользователя решение.

0

Если вам не нужно поддерживать старые браузеры IE, этот фрагмент кода будет работать на вас.

var path = 'Name of your page'; 
//Like for www.Test.com/abc.html write abc.html in path variable 
history.pushState(null, null, path + window.location.search); 
window.addEventListener('popstate', function (event) { 
    history.pushState(null, null, path + window.location.search); 
}); 

Я надеюсь, что будет работать для вас .. Для получения дополнительной информации ознакомьтесь http://www.cheezycode.com/2015/08/how-to-stop-browser-back-using-javascript.html

0

Вы можете использовать popstate событие для обнаружения броузера кнопки назад

 window.onpopstate = function(event) { 
    window.location.assign("www.google.com"); 
}; 

то внутри этого кода Расположить к вашему текущему вместо window.location.assign ("www.google.com");

Смежные вопросы