我确实明白不可能更换beforeunload
带有自定义对话框的对话框,如果我们需要向用户设置自定义消息,则必须在 beforeunload 处理程序中返回一个字符串:
{Custom message here set by returning a string in our beforeunload handler}
Are you sure you want to leave this page?
[Leave this page] [Stay on this page]
那么,在浏览器显示实际的 beforeunload 对话框之前显示自定义模式对话框(可能是 jQuery)怎么样?
我当前的代码使用 Fancybox:
window.onbeforeunload = function() {
$.fancybox({ 'type':'iframe', 'href':'/PopupOnExit.php' });
return "Special offer! Stay on this page for more details.";
};
但是,这首先显示浏览器的对话框,只有在单击“停留”或“离开”按钮后,浏览器才会显示我的模式对话框。
有没有办法让我的模式对话框在浏览器对话框之前显示?
仅当脚本结束执行时,DOM 修改才会生效。在这种情况下,出于明显的安全原因,首先触发本机对话框。
请注意,由于此未指定的功能引入了许多安全问题(请参阅MDN 文档 https://developer.mozilla.org/en/DOM/window.onbeforeunload),它可能会被删除(我认为最快是最好的),拥有它(保存数据)的旧原因在 ajax 时代已经过时了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)