当我点击移动浏览器后退按钮时,应该说明确认框
"你想离开这个页面"
如果用户点击"确定"我需要触发一些功能。
它工作正常。但是当我点击"取消"它不会停留在同一页面上。我尝试了下面的代码。但我不能成功。
var unloadEvent = function (e) {
var confirmationMessage = "Are you want to leave this page";
(e || window.event).returnValue = confirmationMessage;
if(confirm(confirmationMessage)) {
//some JS function
} else {
return false;
}
};
window.addEventListener("beforeunload", unloadEvent);
请帮我解决这个问题。 的由于
答案 0 :(得分:0)
您无法修改onbeforeunload
的默认对话框,因此您最好的选择是使用它。
window.onbeforeunload = function() {
//Do some other stuff here..
return 'You have unsaved changes!';
}
来自Microsoft的
当一个字符串被分配给window.event的returnValue属性时,会出现一个对话框,让用户可以选择保留当前页面并保留分配给它的字符串。对话框中显示的默认语句“您确定要离开此页面吗?...按OK继续,或按取消保留在当前页面上。”,无法删除或更改。
问题似乎是:
onbeforeunload
时,会将处理程序的返回值设为window.event.returnValue
。false
被解析为字符串,因此会触发对话框,然后会传递相应的true
/ false
。结果是,似乎没有办法将false
分配给onbeforeunload
以防止它出现在默认对话框中。
关于jQuery的补充说明:
onbeforeunload
事件。如果您只希望发生卸载事件,我会坚持使用简单的“JavaScript”。 jQuery没有onbeforeunload
的快捷方式,因此您必须使用通用bind
语法。
$(window).bind('beforeunload', function() {} );
Owen question: override onbeforeunload提出了这个答案 谢谢欧文。