Я знаю, что это не сложно найти, но я хочу отключить обновление страницы в браузере. Я разрабатываю приложение для экзамена, где, когда пользователи начинают тест, он откроется в новом окне. но я не хочу, чтобы пользователи обновляли эту тестовую страницу.
Я мог бы сделать это, используя ниже код JavaScript:
document.onkeydown = function (e) {
var key;
if (window.event) {
key = event.keyCode
} else {
var unicode = e.keyCode ? e.keyCode : e.charCode
key = unicode
}
switch (key) { //event.keyCode
case 116:
//F5 button
alert("11");
event.returnValue = false;
key = 0; //event.keyCode = 0;
return false;
case 82:
//R button
if (event.ctrlKey) {
alert("11");
event.returnValue = false;
key = 0; //event.keyCode = 0;
return false;
}
}
}
но когда пользователи переходят в панель местоположения /url и фокусируют его и нажимают кнопку f5, страница обновляется. Не только f5, но и для shift + f5, браузер показывает такое же поведение. как этого избежать?
Пожалуйста помоги.
Что-то вроде этого должно приблизиться к вашей цели.
window.onload = function () {
document.onkeydown = function (e) {
return (e.which || e.keyCode) != 116;
};
}
Проблема в том, что то, что вы пытаетесь сделать, принципиально опасно, так как веб-страницы слишком сильно контролируют поведение браузера, и их можно легко злоупотреблять недобросовестными или багги веб-сайтами.
Такие вещи, как закрытие страниц, обновление страниц и т.д., Невозможно заблокировать. Даже если вы блокируете сочетание клавиш, люди всегда могут просто перейти к URL снова.
Лучше сказать, почему вы не хотите, чтобы они обновлялись и исправляли это. Например, если это связано с тем, что у вас есть обратный отсчет javascript для времени тестирования, то это можно устранить, записав время, которое они начали в базе данных, и когда они обновляют возобновление обратного отсчета с правильной точки.