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

时间:2012-02-23 15:11:51

标签: javascript jquery javascript-events event-handling

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

单击取消时,不应关闭窗口,但在按下继续时,窗口应重定向到另一个jsp。

有人可以帮我解决这个问题吗?我尝试使用自定义确认框,但似乎只返回一个字符串,它不能用于重定向到页面。

3 个答案:

答案 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;

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