gpt4 book ai didi

javascript - mailto 链接(在 chrome 中)正在触发 window.onbeforeunload - 我可以阻止这种情况吗?

转载 作者:可可西里 更新时间:2023-11-01 01:21:44 25 4
gpt4 key购买 nike

可能与 How to open mailto link in Chrome with Window.open without creating a new tab? 有关

大家好。我有一个表单页面,我在其中放置了一个 window.onbeforeunload 确认,以防止人们离开并意外丢失他们的更改:

window.onbeforeunload = function(){
if(changed)
return "You have unsaved changes. Do you really want to leave this page without saving?";
};

其中 changed 是一个变量,每当用户进行任何更改时,我都会将其设置为 true。没关系。但是,我还在页面中添加了一些 mailto 链接,如下所示:

<a class="button button-alt" href="mailto:foo@foo.com">Report a problem</a>

即使 mailto 没有离开页面(它正在打开用户的默认邮件应用程序),它仍然会触发 onbeforeunload 事件,提示确认框,这很烦人。我可以在链接上设置 target="_blank" 来绕过它,但随后用户将坐在一个空选项卡中。

我可以设置 mailto 链接不触发 onbeforeunload 事件吗?我想到了一个可怕的 hacky 方法,通过另一个临时 javascript 变量导致 onbeforeunload 确认不触发,但它看起来有点脏。无论如何,我都会在等待回复时这样做,但是有人有更好的解决方案吗?

谢谢,马克斯

最佳答案

解决这个问题的一个非常简单的方法是做这样的事情:

<a href="mailto:foo@bar.com" target="hidden-iframe">Email me</a>
<iframe name="hidden-iframe" style="visibility:hidden;position:absolute;"></iframe>

(当然,将样式移动到它们自己的样式表而不是内联它们。)

关于javascript - mailto 链接(在 chrome 中)正在触发 window.onbeforeunload - 我可以阻止这种情况吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9740510/

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