Запретить пользователю нажимать кнопку 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(); должен сделать свое дело.

Другие вопросы по тегам