Javascript 如何让窗口消息保持不变,直到用户单击按钮才离开页面?
我需要创建带有窗口的dojo按钮,当用户试图离开页面时,该窗口会弹出Javascript 如何让窗口消息保持不变,直到用户单击按钮才离开页面?,javascript,dojo,Javascript,Dojo,我需要创建带有窗口的dojo按钮,当用户试图离开页面时,该窗口会弹出 dojo.addOnUnload(window, "test"); function test() { if(hasPendingChange){ //function goes here i believe } } 我很确定这是正确的格式,但它会离开页面,而不是等待用户的响应。有什么想法吗 谢谢大家! 您不能覆盖beforeunload的默认实现 可以将eventhandler连接到window.onbef
dojo.addOnUnload(window, "test");
function test() {
if(hasPendingChange){
//function goes here i believe
}
}
我很确定这是正确的格式,但它会离开页面,而不是等待用户的响应。有什么想法吗
谢谢大家! 您不能覆盖beforeunload的默认实现 可以将eventhandler连接到window.onbeforunload。但是,多个处理程序是一个问题,因为结果可能与您预期的不同
窗口.onbeforeunload
是一个函数,由本机JS引擎调用,它需要一个字符串
。它将(始终)弹出一个本机confirm(str)
对话框,即-如果beforeuload函数返回str
阻止它弹出confirm
的唯一方法是进行阻塞调用(如dijit.Dialog{..}).show();虽然(1)
)这是不可行的,但我相信你会知道的。此外,您还必须告诉用户,在对话框中选择“否”,当您打破无休止的while时,该对话框最终将弹出:)
所以,以身作则
var g_ChangesMade = false;
window.onbeforeunload = function() {
return (g_ChangesMade == true ? "Leaving Page with unsaved changes" : null);
}
将显示一个带有字符串的confirmdialog-如果进行了全局更改
--------------------
| Leaving Page... |
| |
| Ok Cancel |
--------------------
除非使用浏览器的内置对话框,否则无法阻止用户离开页面。事情是这样的,我想让我的dojo警告按钮出现。而不是默认的警告消息。默认消息只显示两个选项,而我想在dojo警告消息中添加更多按钮选项。