使用onbeforeunload确认时可以捕获用户的答案吗?
我需要警告用户他们在离开页面时会丢失信息。这很容易使用onbeforeunload事件完成。我的问题是,如果用户决定离开,我想采取一些行动。使用onbeforeunload确认时可以捕获用户的答案吗?
下面是一个例子(我使用jQuery,因为它反正装):
$(window).on('beforeunload', function(e){
return "Do you really want to leave?";
});
我想什么做的是这样的事情(此代码不工作,我知道,这只是一个例子来说明什么,我试图做):
$(window).on('beforeunload', function(e){
// Ask for user confirmation
var bUserAnswer = confirm("Do you really want to leave?");
if(bUserAnswer)
{
// Do something...
}
else
{
// Do something else...
}
// Close everything if the user decides to leave...
return bUserAnswer;
});
我不知道如果我想要在这里做的,甚至有可能......周围的Googling没有给我任何迹象显示这种或那种方式另一个,所以我转向我最喜欢的专家组!
任何想法我怎么能做到这一点?
谢谢!
当离开页面时,按顺序执行事件beforeunload
和unload
。当然,如果beforeunload
事件没有完成,则unload
事件不会。
beforeunload
事件没有完成的方式是当用户点击“留在页面”按钮而不是“离开页面”(如果该对话框被呈现给他们,就像在你的代码中那样)。
所以,如果你知道,他们不离开页面的可能性总是会呈现给他们,为unload
事件而执行的唯一方法是,如果(用户)没有阻止beforeunload
事件。
因此,当用户实际选择离开unload
事件中的页面时,您应该能够放置任何想要执行的代码。
至于知道,如果用户决定留在页面上,我不知道如何抓住它:)
这对我来说非常合适!谢谢! – Gabriel 2013-04-08 16:16:34
宏伟的伊恩救了我的一天,那是onbeforeunload和onunload之间的纯粹差异。 – 2014-04-17 10:15:05
重复:http://stackoverflow.com/questions/276660/how-can-i -over-on-onbeforeunload-dialog-and-replace-it-with-my-own – hereandnow78 2013-04-08 15:33:16
请正确阅读我的问题。我不是问如何做一个“离开页面确认”,而是根据“离开页面确认”的结果如何做一些动作...... – Gabriel 2013-04-08 15:36:15
你的问题在该线程中有所回答。你想做的事是不可能的,因为安全的原因... – hereandnow78 2013-04-08 15:43:01