Internet explorer 在卸载两次之前

Internet explorer 在卸载两次之前,internet-explorer,internet-explorer-11,onbeforeunload,Internet Explorer,Internet Explorer 11,Onbeforeunload,为了防止用户离开表单,我在卸载前使用事件: $(window).on('beforeunload', exit_page); 对于Firefox和Chrome,此方法工作正常,但对于Internet Explorer,beforeunload函数调用了两次 因此,我实现了记住调用事件并设置超时函数的技巧。就像我解释的那样 在几年的时间里,这个解决方案效果很好。但现在我注意到这个技巧对IE11不起作用。当第二次调用exit_page函数并且没有返回字符串时,IE11将不会显示弹出消息以阻止离开页

为了防止用户离开表单,我在卸载前使用事件:

$(window).on('beforeunload', exit_page);
对于Firefox和Chrome,此方法工作正常,但对于Internet Explorer,beforeunload函数调用了两次

因此,我实现了记住调用事件并设置超时函数的技巧。就像我解释的那样

在几年的时间里,这个解决方案效果很好。但现在我注意到这个技巧对IE11不起作用。当第二次调用exit_page函数并且没有返回字符串时,IE11将不会显示弹出消息以阻止离开页面,而是继续。同样,对于返回并设置e | | window.event.returnValue null的情况,false也会执行相同的操作,或者第二次显示弹出消息,例如false作为消息

如果用户想要离开页面,对话框只显示一个,然后页面重定向

我找不到IE11的有效解决方案来防止第二次出现beforeunload对话框。有解决此问题的方法吗?

e.returnValue未在jQuery中实现,只需返回字符串即可。请注意,您不必检查,如果事件参数存在,那么在使用jQuery时,它总是被传递的。