在IE 11上加载之前-不提示用户不工作
beforeunload on IE 11 - do not prompt user does not work
将侦听器添加到beforeunload
事件的全局窗口对象时,IE 11(和10)的行为与Chrome和Firefox不同。
通常,您会返回一个用于填充浏览器本机对话框提示的字符串,如果不希望对话框提示用户,则返回一个空字符串。
但是,在IE 11中,如果返回空字符串和/或将evt.returnValue
设置为空字符串,则会打开浏览器本机的"导航离开"对话框,并提示用户确认可能会丢失未保存的更改。
是否有任何方法(不必删除事件侦听器)使对话框不出现在IE 11中?
请参阅我的JSFiddle(在IE中,因为它应该在Chrome、Firefox和Safari中正常工作)。
这是小提琴的来源:
var isDirty = false;
var message = '** You have unsaved changes. **'
window.addEventListener('beforeunload', function(evt){
if(isDirty) {
evt.returnValue = message;
return message;
}
delete evt.returnValue;
return "";
});
解决方案是不返回任何内容(与return;
或return undefined;
相同)。
var isDirty = false;
var message = '** You have unsaved changes. **'
window.addEventListener('beforeunload', function(evt){
if(isDirty) {
evt.returnValue = message;
return message;
}
delete evt.returnValue;
});
相关文章:
- 提示用户通过AJAX调用保存文件
- 如何在将鼠标悬停在提交/锚点上时检查复选框是否已选中,并显示提示用户这样做的警报
- node-webkit:将数据导出到csv并提示用户保存文件
- 如何创建一个提示用户输入登录id和密码的网站
- 使用数据URI提示用户保存文件
- 不断提示用户一个数字,直到它落入某个范围
- Jquery:在一个字符串中查找所有实例模式,提示用户替换模式的所有实例,然后进行替换
- 提示用户在Google Apps Script上输入,“getUi()”方法出错
- 如何提示用户在 HTML/JS 中输入密码,让他们无法在页面源代码中找到密码
- 在while循环之后提示用户,并根据用户的回答使变量等于一个值(javascript)
- 使用 Javascript 在命令提示符下提示用户输入
- 使用自定义对话框提示用户尝试使用未保存的数据进行导航
- MVC.NET提示用户登录
- 在IE 11上加载之前-不提示用户不工作
- IE9提示用户提交隐藏的iFrame
- Facebook解析验证未提示用户授予权限
- 在不提示用户的情况下离开页面时执行的Javascript函数
- 模态中未保存的信息会提示用户在退出模态之前进行保存
- Node.Js提示用户输入
- 在 JavaScript 中使用 for 循环编写代码,提示用户输入任意数量的数字,打印这些数字中最大和最小的数字