gpt4 book ai didi

javascript - 如何防止 window.onbeforeunload 被 javascript : href links in IE? 触发

转载 作者:行者123 更新时间:2023-12-03 21:33:28 42 4
gpt4 key购买 nike

我正在为我的表单构建一个故障安全机制,它将警告用户,如果他们离开页面,他们的表单数据将会丢失(类似于 gmail 的做法)。

window.onbeforeunload = function () {    
if (formIsDirty) {
return "You have unsaved data on this form. Don't leave!";
}
}

上述函数在 Firefox 中运行良好,但在 IE 中,它可以由任何 href 链接触发,甚至是指向 javascript 而不是其他页面的链接。

例如......

<a href='javascript:someFunction();'>click</a>

我想知道是否有任何方法可以解决这个问题,因为我不希望用户认为他们在单击页面上的按钮时就离开了页面。 我无法选择重写所有各种链接,因为它们是内置的且数量众多。

有什么想法吗?

最佳答案

您可以在悬停这些链接时删除并重新分配 onbeforeunload:

jQuery(
function($)
{
//store onbeforeunload for later use
$(window).data('beforeunload',window.onbeforeunload);

//remove||re-assign onbeforeunload on hover
$('a[href^="javascript:"]')
.hover(
function(){window.onbeforeunload=null;},
function(){window.onbeforeunload=$(window).data('beforeunload');}
);

}
);

关于javascript - 如何防止 window.onbeforeunload 被 javascript : href links in IE? 触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7650063/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com