我正在开发一个培训管理系统。我想在考试页面重新加载之前通知我的学生。例如,如果学生在开始考试后想要重新加载页面,他会收到警报(甜蜜警报我想).如果有学生想强行重新加载页面,考试表格会自动提交.我成功阻止【禁用右键键盘重新加载].但我不能阻止页面重新加载通过点击浏览器重新加载按钮或url命中.所以有没有办法显示警报消息,并得到确认之前,页面重新加载使用JavaScript或jquery或laravel或php?
我尝试了beforeunload事件。下面是我的HTML代码:
<input type="text" name="username" id="name" placeholder="Username">
字符串
下面是我的JS代码:
const beforeUnloadHandler = (event) => {
// Recommended
event.preventDefault();
// Included for legacy support, e.g. Chrome/Edge < 119
event.returnValue = true;
Swal.fire({
title: "Are you sure?",
text: "You won't be able to revert this!",
icon: "warning",
showCancelButton: true,
confirmButtonColor: "#3085d6",
cancelButtonColor: "#d33",
confirmButtonText: "Yes, delete it!"
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
url: "controller.php",
method: "GET",
success: function (response) {
console.log(response);
}
})
}
});
};
// works first
// $.ajax({
// url: "controller.php",
// method: "GET",
// success: function (response) {
// console.log(response);
// }
// })
const nameInput = document.querySelector("#name");
nameInput.addEventListener("input", (event) => {
if (event.target.value !== "") {
window.addEventListener("beforeunload", beforeUnloadHandler);
} else {
window.removeEventListener("beforeunload", beforeUnloadHandler);
}
});
型
但问题是在浏览器中显示警报之前执行警报请求,点击离开页面或取消按钮后显示甜蜜警报。我想在警报显示并确认后调用警报请求。我该怎么做?
这对我来说是一个很大的帮助。对不起,我的英语不好。提前感谢。
我尝试了beforeunload事件。下面是我的HTML代码:
<input type="text" name="username" id="name" placeholder="Username">
型
下面是我的JS代码:
const beforeUnloadHandler = (event) => {
// Recommended
event.preventDefault();
// Included for legacy support, e.g. Chrome/Edge < 119
event.returnValue = true;
Swal.fire({
title: "Are you sure?",
text: "You won't be able to revert this!",
icon: "warning",
showCancelButton: true,
confirmButtonColor: "#3085d6",
cancelButtonColor: "#d33",
confirmButtonText: "Yes, delete it!"
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
url: "controller.php",
method: "GET",
success: function (response) {
console.log(response);
}
})
}
});
};
// works first
// $.ajax({
// url: "controller.php",
// method: "GET",
// success: function (response) {
// console.log(response);
// }
// })
const nameInput = document.querySelector("#name");
nameInput.addEventListener("input", (event) => {
if (event.target.value !== "") {
window.addEventListener("beforeunload", beforeUnloadHandler);
} else {
window.removeEventListener("beforeunload", beforeUnloadHandler);
}
});
型
1条答案
按热度按时间vyu0f0g11#
你不能自定义模式当用户刷新或点击后退按钮,但只有一个默认的确认框,你可以显示这样的
字符串