Запретить пользователю нажимать кнопку f5 во всплывающем окне
Я хочу запретить пользователям нажимать кнопку F5 из-за запуска экзаменационного теста в моем проекте.
Если я использую обычное окно браузера, мой код работает нормально, но теперь я хочу использовать его во всплывающих окнах - во всплывающих окнах мой код не работает. Мой код:
document.onkeydown=function(e) {
var event = window.event || e;
if (event.keyCode == 116) {
event.keyCode = 0;
alert("This action is not allowed");
return false;
}
}
3 ответа
document.onkeydown = function(e){
var event = (window.event || e);
if(event.keyCode==116){
event.preventDefault();
alert("This action is not allowed");
}
}
Вам не нужна эта часть кода: event.keyCode = 0;
- изменение keyCode после нажатия клавиши ни на что не повлияет.
Попробуй это
myWindow=window.open('','','width=200,height=100');
myWindow.document.write("<p>This is 'myWindow'</p>");
myWindow.focus();
myWindow.onkeydown=function(e) {
var event = window.event || e;
if (event.keyCode == 116) {
event.preventDefault();
alert("This action is not allowed");
}
}
Если вы ищете для обновления вашей веб-страницы, то вам следует спросить, зачем вам это нужно. Если это не для повторной отправки уже отправленных данных, вам следует использовать другой php-файл для обработки ваших данных и другой для отображения их вашему пользователю. Таким образом, вы можете проверить, что-то не так и перенаправить его соответственно.
Если вам по какой-то конкретной причине необходимо предотвратить обновление через F5, то, что предложил Cobra_Fast e.preventDefault();
должен сделать свое дело.