我正在使用onbeforeunload
事件在关闭页面执行操作。
我不希望事件发生在Refresh
/F5的情况下。防止在刷新/ F5中发生OnBeforeUnload()事件
有没有办法或其他事件来做到这一点?
我正在使用onbeforeunload
事件在关闭页面执行操作。
我不希望事件发生在Refresh
/F5的情况下。防止在刷新/ F5中发生OnBeforeUnload()事件
有没有办法或其他事件来做到这一点?
不幸的是onbeforeunload
事件在浏览器中侦听页面状态。去另一个页面以及刷新将改变页面状态,意味着onbeforeunload
将被触发。
所以我认为这是不可能只捕获刷新。
但是,如果您要通过JavaScript来监听并阻止Keypress
,那么就可以实现。
刷新可以通过F5和按Ctrl[R键来完成,所以你的目标是阻止这些行为。
使用jQuery .keydown()你可以检测这些键码:
对于按Ctrl[R
$(document).keydown(function (e) {
if (e.keyCode == 65 && e.ctrlKey) {
e.preventDefault();
}
});
对于F5
$(document).keydown(function (e) {
if (e.which || e.keyCode) == 116) {
e.preventDefault();
}
});
我想补充一个信息提示onbeforeunload,所以我的解决办法是这样的一个:
$(document).ready(function(){
window.onbeforeunload = PopIt;
$("a").click(function(){ window.onbeforeunload = UnPopIt; });
$(document).keydown(function(e){
if ((e.keyCode == 82 && e.ctrlKey) || (e.keyCode == 116)) {
window.onbeforeunload = UnPopIt;
}
});
});
function PopIt() { return "My message before leaving"; }
function UnPopIt() { /* nothing to return */ }
三线($( “A”)点击...)为避免显示警报在网页的各个部分之间进行导航时。
我不想赶上页面刷新。我希望页面刷新不会触发事件。 – Refael
看我更新的答案。 – zur4ik
点击刷新图标怎么样? – Refael