自定义确认框,该框具有关闭窗口事件的某些功能

Custom confirm box that has some functionality to it with window close event

本文关键字:事件 窗口 功能 确认 自定义      更新时间:2023-09-26

我目前正在编写JavaScript,单击窗口中的关闭按钮,我应该会得到一个确认框。在确认框中,我应该显示一些消息,并且应该有取消和继续按钮。

单击cancel时,不应关闭窗口,但单击continue时,应将窗口重定向到另一个jsp。

有人能帮我查一下这个密码吗?我尝试使用自定义确认框,但它似乎只返回一个字符串,不能用于重定向到页面。

这是不可能的。当用户关闭窗口时,您无法将其重定向到另一个页面。这是出于安全考虑。

要在关闭窗口时显示确认框,可以使用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.
});

看看这个例子,它可能会帮助你摆脱

function setConfirmUnload(on){
   window.onbeforeunload = (on) ? unloadMessage : null;
}
function unloadMessage(){
   return "Are you sure you want to leave this page";
}

setConfirmUnload(true)启用确认,如果您希望允许他们在没有警告的情况下关闭屏幕(例如,如果您有关闭按钮),则为false。

你也可以试试这个(链接:http://api.jquery.com/unload/)

$(window).unload(function(){
   alert("Bye now!");
}); 

您需要将一个处理程序绑定到onBEFOREunload事件,因为onunload事件无法实现您想要的任何功能(为时已晚)。

var myFunction = function () {
    return "Are you sure you want to leave the page?";
};
window.onbeforeunload = myFunction;

据我所知,由于确认框由浏览器处理,因此无法对用户输入做出反应。