我需要创建dojo按钮,当用户试图离开页面时会弹出窗口。
dojo.addOnUnload(window, "test");
function test() {
if(hasPendingChange){
//function goes here i believe
}
}
我很确定这是正确的格式,但它离开页面而不是等待用户的响应。有什么想法吗?
谢谢!
答案 0 :(得分:0)
您无法覆盖beforeunload的默认实现。
可以将eventhandler连接到window.onbeforunload,但是多个处理程序是一个问题,因为结果可能与您的预期不同。
window.onbeforeunload
是一个函数,由本机JS引擎调用,它需要String
。它将(总是)弹出一个本地confirm(str)
对话框,即 - 如果从beforeunload函数返回str
。
阻止它弹出confirm
的唯一方法是拨打阻止电话(如dijit.Dialog{..}).show(); while(1)
)并且这不可行,我相信你已经知道了。此外,您必须告诉用户,在对话框中选择“否”,当您打破无尽的时间时最终会弹出:)
所以,例如明智的
var g_ChangesMade = false;
window.onbeforeunload = function() {
return (g_ChangesMade == true ? "Leaving Page with unsaved changes" : null);
}
将显示带字符串的confirmdialog - 如果全局_更改
--------------------
| Leaving Page... |
| |
| Ok Cancel |
--------------------