xyz*_*xyz 11 javascript onbeforeunload javascript-events
如果用户尝试关闭窗口而不保存表单,我将显示一条警告消息.
window.onbeforeunload = askConfirm;
function askConfirm()
{
// needToConfirm is set to true if any changes are there in the form
if (needToConfirm)
{
return "Your unsaved data will be lost.";
}
}
function call_this_if_user_clicks_on_cancel()
{
// Bla bla bla
// After this user should remain on the same page.
}
Run Code Online (Sandbox Code Playgroud)
现在我想在用户点击时调用另一个函数Okay.其余功能应该保持不变.那么如何收集onbeforeunload返回值并调用另一个函数呢?
解:
needToConfirm = false;
window.onbeforeunload = askConfirm;
window.onunload = unloadPage;
isDelete = true;
function unloadPage()
{
if(isDelete)
{
call_this_if_user_clicks_on_cancel()
}
}
function askConfirm()
{
alert("onbeforeunload");
if (needToConfirm)
{
// Message to be displayed in Warning.
return "Your data will be lost.";
}
else
{
isDelete = false;
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢Alex.
我不确定; 但我认为你不能调用另一个函数,作为浏览器的预防措施,因此不会因为离开页面而陷入困境.
我认为只有浏览器知道它是否返回true/false以确定页面是否被卸载(或不是).
以前unbeforeunload是非标准的(来自IE4,但受其他浏览器支持)以下是Mozilla文档https://developer.mozilla.org/en/DOM/window.onbeforeunload 和Microsoft文档:http://msdn.microsoft. COM/EN-US /库/ ms536907(VS.85)的.aspx
然而,它看起来像在HTML5提案中的BeforeUnloadEvent.本文档详细介绍了卸载文档时发生的步骤(有趣的阅读):
http://www.w3.org/TR/html5/history.html#beforeunloadevent
作为一种解决方法:您可以从"卸载事件"中收集所需的信息,如果在onbeforeunload之后未调用unload事件,则可以假设用户选择留在您的页面上.
https://developer.mozilla.org/en/DOM/window.onunload
| 归档时间: |
|
| 查看次数: |
14747 次 |
| 最近记录: |