我当前正在从事一个项目,因为如果用户尝试刷新当前页面,他们将收到带有警告Don't refresh page or else you will lose data
的确认框,因此如果取消,则他将停留在同一页面上,但是我的问题是单击它们时是的,即重新加载,因为他单击重新加载时,应该会再收到you clicked reload now page will reload and data will loss
个警报,所以该怎么做,因为当他单击重新加载按钮时我什么都没得到。
下面我写了剧本。
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script>
$(window).on('beforeunload', function(){
return prompt("are you sure want to refresh this page !");
if(true){
alert('You will lose data');
}
else{
alert("Ok continue your work");
}
});
</script>
答案 0 :(得分:1)
return
语句退出一个函数,因此不会执行return语句之后的所有内容
我不认为您需要一个prompt
框,而是一个confirm
框(请参阅here)。
prompt
框仅用于由用户获取某些东西confirm
框用于询问用户是否确认了某内容
var rep = confirm("are you sure want to refresh this page !");
console.log(rep);
if(rep){
alert('You will lose data');
}
else{
alert("Ok continue your work");
}
答案 1 :(得分:0)
我建议您在使用onBeforeLoad事件时不要使用Jquery。它导致不良行为。 Vanilla JS会更好地处理它。
示例:
window.onbeforeunload = function beforeExit();
function beforeExit(){
return confirm("Are you sure you want to exit?");
}
使用这种方法,如果用户尝试刷新页面,则将执行您的函数。