我正在编写JavaScript,点击窗口中的关闭按钮,我应该得到一个确认框。在确认框中,我应该显示一些消息,应该有取消和继续按钮。
单击取消时,不应关闭窗口,但在按下继续时,窗口应重定向到另一个jsp。
有人可以帮我解决这个问题吗?我尝试使用自定义确认框,但似乎只返回一个字符串,它不能用于重定向到页面。
答案 0 :(得分:1)
这是不可能的。关闭窗口时,您无法将用户重定向到另一个页面。这是出于安全原因。
要在关闭窗口时显示确认框,您可以使用onbeforeunload
事件。这将询问用户是否希望离开页面。确认框由浏览器呈现,您可以自定义的是文本。
$(window).bind('beforeunload', function(){
return 'Are you sure you want to leave?';
});
当用户离开页面时,您可以使用onunload
事件,但同样,您无法重定向它们(您可以进行AJAX调用,但无法重定向浏览器)。
$(window).bind('unload', function(){
console.log('bye'); // Some browsers may block this.
// Chrome blocks alerts in this event.
});
答案 1 :(得分:0)
查看此示例,它可能会帮助您
function setConfirmUnload(on){
window.onbeforeunload = (on) ? unloadMessage : null;
}
function unloadMessage(){
return "Are you sure you want to leave this page";
}
setConfirmUnload(true)
启用确认,如果您想让他们在没有警告的情况下关闭屏幕(例如,如果您有关闭按钮),则启用确认。
您也可以尝试此操作(链接:http://api.jquery.com/unload/)
$(window).unload(function(){
alert("Bye now!");
});
答案 2 :(得分:0)
您需要将处理程序绑定到onBEFOREunload事件,因为onunload事件无法实现您想要的任何功能(为时已晚)。
var myFunction = function () {
return "Are you sure you want to leave the page?";
};
window.onbeforeunload = myFunction;
据我所知,由于浏览器处理确认框,因此无法对用户输入做出反应。