我试图仅在用户关闭选项卡或浏览器窗口时触发 OnBeforePageUnload。当用户在我的网站上导航时,我有一个自定义机制会触发一个警告对话框,以防止用户丢失输入的数据。所以每次点击我页面上的链接时,我都会设置 a 标志:
$('a[href]').click(function (event) {
buttonOutsidePageClicked = false;
});
然后,触发 onbeforepageunload 事件。我检查标志的值,看看是否应该显示内置的 onbeforeunload 对话框:
function OnBeforeUnload(oEvent) {
if (buttonOutsidePageClicked)
return navAwayMessage;
}
这适用于页面上的所有链接,但以下链接除外:
<a id="cpm_UploadLink" class="button" rel="no" href="/pages/otherPage">
<span class="btnLeft"></span>
<span class="btnMiddle">Click Me</span>
<span class="btnRight"></span>
</a>
这些 html 是由自定义 Web 控件创建的。当我点击链接时,我被重定向到 otherPage 而没有触发点击事件。所以我无法设置标志并显示内置的 onbeforeunload 消息。
当我添加内联时,直接在控件中添加 onclick 属性,如下所示:
<a id="cpm_UploadLink" class="button" rel="no" href="/pages/otherPage"
onclick="javascript:buttonOutsidePageClicked = false;">
<span class="btnLeft"></span>
<span class="btnMiddle">Click Me</span>
<span class="btnRight"></span>
</a>
一切正常。但这不是我想要解决这个问题的方式。
有人可以向我解释我在这里犯了什么错误吗?
我一直在寻找并尝试很多代码,但没有成功。
我发现这篇文章在加载 jQuery 之前阻止链接, 但我不知道这是否与我的问题有关,因为我只有一个链接。
提前感谢您的帮助。