2012-02-23 185 views
1

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

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

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

+2

如何展示你迄今为止所做的事情。我们无法修复我们看不到的代码。的 – 2012-02-23 15:15:28

+0

可能重复[跨浏览onbeforeunload?](http://stackoverflow.com/questions/7389554/crossbrowser-onbeforeunload) – Aelios 2014-05-13 08:22:43

回答

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. 
}); 
+0

感谢...我已经试图把该消息,这不是一个问题,但我需要继续按钮在确认框中将其重定向到另一个jsp页面...是否有可能?如果有,请告诉我如何? – 2012-02-23 15:27:20

+0

@VamsiVaranasi:不,那是不可能的。 – 2012-02-23 15:29:26

+0

你可以建议任何其他方式,以便我可以得到一个对话框,当我按下关闭窗口按钮。并且该对话框有两个按钮,我可以用来重定向用户点击继续到另一个jsp。 – 2012-02-23 15:34:48

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!"); 
}); 
+0

注意:Chrome(可能还有其他浏览器)在'onunload'事件中阻止'alert'。 – 2012-02-23 15:22:37

0

您需要绑定一个处理程序onbeforeunload事件,因为没有你想要将有可能与onunload事件(的功能实在是太晚了)。

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

window.onbeforeunload = myFunction; 

据我所知,是没有办法的确认框是由浏览器处理,以应对用户的输入。