Din*_*h M 5 firefox jquery internet-explorer onbeforeunload
onbeforeunload当用户尝试离开页面时,我使用事件来显示默认警报框。
此对话框显示在“表单发布”操作中。
我曾经使用过event.preventDefault()(对于return nullSafari 浏览器除外的浏览器)和Safari,以防止在Form post操作中显示此对话框。但这在Firefox和IE中不起作用。
下面是jQuery代码示例
if (!isSafari) {
window.addEventListener("beforeunload", function (event) {
if (!hideDefaultAlert) {
event.returnValue = "Your unsaved changes will be lost";
} else {
event.preventDefault();
hideDefaultAlert = false;
}
});
} else if (isSafari) {
$(window).on("beforeunload", function () {
if (!hideDefaultAlert) {
return "Your unsaved changes will be lost";
} else {
hideDefaultAlert = false;
return null;
}
});
}
Run Code Online (Sandbox Code Playgroud)
请为此提供解决方案,以防止Firefox和Safari中出现此警报。
提前致谢。
解决方案是,需要替换event.preventDefault()为event.stopPropagation()和return undefined。该解决方案适用于所有浏览器。
if (!isSafari) {
window.addEventListener("beforeunload", function (event) {
if (!hideDefaultAlert) {
event.returnValue = "Your unsaved changes will be lost";
} else {
event.stopPropagation();
hideDefaultAlert = false;
return undefined;
}
});
} else if (isSafari) {
$(window).on("beforeunload", function () {
if (!hideDefaultAlert) {
return "Your unsaved changes will be lost";
} else {
hideDefaultAlert = false;
return null;
}
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
109 次 |
| 最近记录: |