2010-10-04 4 views
4

Я пытаюсь обнаружить и изменить поведение браузера, если пользователь нажимает кнопку «Назад».Можете ли вы обнаружить/перенаправить кнопку «Назад», нажав на javascript?

Возможно ли это только через Javascript?

+0

http://www.irt.org/script/311.htm – Alex

+6

Вы можете связываться с моя задняя кнопка, когда вы вытаскиваете ее из моих холодных, мертвых рук. –

ответ

4

Ничего себе, я просто многому научился, прочитав этот учебник по javascript. Это говорит о следующих вещах:

Овладение Назад Кнопка с Javascript

  • window.onbeforeunload
  • Вы действительно, действительно уверены, что хотите покинуть мою славную страницу?
  • Детектирование Когда пользователь щелкнул Отменить
  • Действительно динамических страниц
  • Некоторые соображения безопасности.
  • Вы не можете изменить историю, и, наконец,
  • Если вы должны управлять История

, который говорит о том, как история была сделана с замком вниз. Вы можете внести ограниченные изменения. Но вы можете поместить URL-адрес для замены, чтобы, если человек решил вернуться, он перенаправит его на другую страницу. Это будет хорошо по соображениям безопасности, если человек войдет в систему, а затем выйдет из системы, а другой человек нажмет кнопку «Назад», страница будет просто перенесена на страницу замены.

проверить его Его действительно короткая и точная, информативная статья/учебник и содержит множество фрагментов java, которые помогут вам в каждом разделе.

http://www.hunlock.com/blogs/Mastering_The_Back_Button_With_Javascript

Я надеюсь, что это помогает.

PK

0

Можно было бы реализовать ссылку на «Назад» на вашей странице html, а затем добавить туда свою JS-функцию. Однако невозможно определить, что пользователь делает с браузером (например, нажатие кнопки «Назад браузера») в JS, потому что это происходит вне контекста загруженной страницы, и нет стандартной спецификации для подачи веб-сервера с данными из графического интерфейса браузера. Вы можете попытаться разработать пользовательский плагин для этого, чтобы он работал в браузере и передавал WWW-сервер с данными по этому поводу, но опять же это нестандартное решение, и не все пользователи могут легко установить сторонний плагин.

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

1

Я просто задал тот же самый вопрос, который был закрыт, так как он является дубликатом вашей. Вот суть моего решения:

Поля формы автоматически извлекаются из кеша браузера, таким образом сохраняя исторические данные. в то время как это верно, javascript-код запускается независимо каждый раз.

Таким образом, я создал небольшое скрытое поле, чтобы провести отметку времени и сравнить его с созданным временем генерации javascript.

Вот код, я уверен, что он может быть гораздо лучше реализована, хотя времени мало:

$(document).ready(function() { 
    var date = new Date(); 
    var clientMiliseconds = date.getTime(); 
    clientMiliseconds = roundTime(clientMiliseconds); 
    var serverTimeStamp = $('#' + '<%= hfTimeStamp.ClientID %>').val(); 
    serverTimeStamp = roundTime(serverTimeStamp); 
    alert(serverTimeStamp == clientMiliseconds); 
}); 


function roundTime(time) { 
    time = Math.floor(time); 
    //since the server renders the time components a few seconds before the page is downloaded 
    //which also depends on where you assign the date on the serverside 
    //we've got a small inaccuracy of few seconds. we neglect these seconds, assuming that it would take the user 
    //a few seconds to click the back button 

    time = time/10000; 
    time = Math.floor(time); 
    return time; 
} 
Смежные вопросы