当用户离开我的网站的一个页面时,应该有一条警告消息,让用户可以选择留在页面上:
“您确定要关闭此页面吗?”
下一页是内部页面还是外部页面无关紧要。
我认为可以使用onUnload事件处理程序完成,不是吗?
<body onunload="confirmClose()">
confirmClose()函数必须显示一个带有两个按钮的消息框,以便用户可以选择“Really leave”或“Stay”。
function confirmClose() {
return confirm('Really leave this page?')
}
但是这个功能无法阻止卸载,对吗?
你有解决我的问题的方法吗?提前谢谢!
答案 0 :(得分:5)
您只能提供文字。浏览器处理对话框(安全原因)。以下是您可以使用的一些代码:
window.onbeforeunload = function (e) {
var e = e || window.event;
var msg = 'Are you sure you want to leave?';
// For IE and Firefox
if (e) {
e.returnValue = msg;
}
// For Safari / chrome
return msg;
}
不过在不同的浏览器上试试这个。你会注意到消息的构造应该根据不同浏览器的对话框措辞而有所不同。
以下是我使用的内容:
if (IsChrome) {
return 'You were in the middle of editing. You will lose your changes if you leave this page';
} else {
return 'You were in the middle of editing. Press OK to leave this page (you will lose your changes).';
}
答案 1 :(得分:4)
您可以添加onbeforeunload
个活动。请注意,它可以仅返回一个文本字符串,以包含在调用事件时浏览器将显示的对话框中。您无法调整超出该范围的对话框,也无法触发您自己的confirm
。
我注意到这是一种非常非常烦人的行为,除了在一些特定的情况下。除非你因此而使我免于重大数据丢失,否则请不要这样做。
答案 2 :(得分:1)
浏览器负责显示确认窗口。
您需要返回包含您想要询问的消息的字符串。此外,您可能希望使用onbeforeunload
来实现跨浏览器兼容性。