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