相关疑难解决方法(0)

mailto链接(在chrome中)触发window.onbeforeunload - 我可以阻止这个吗?

可能与如何使用Window.open在Chrome中打开mailto链接而不创建新标签有关?

大家好.我有一个表单页面,我放了一个window.onbeforeunload确认,以阻止人们导航并意外丢失他们的更改:

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

其中changed是变量i设置为true,每当用户进行任何更改.那一切都很好.但是,我还添加了一些指向页面的mailto链接,如下所示:

<a class="button button-alt" href="mailto:foo@foo.com">Report a problem</a>
Run Code Online (Sandbox Code Playgroud)

即使mailto没有离开页面(它正在打开用户默认邮件应用程序),它仍然会触发onb​​eforeunload事件,提示确认框,这很烦人.我可以target="_blank"在链接上设置它,但随后用户将坐在空白标签中.

我可以将mailto链接设置为不触发onb​​eforeunload事件吗?我想到了一个可怕的hacky方式,通过使用另一个临时的javascript变量,导致onbeforeunload确认不触发,但它似乎有点脏.无论如何,当我等待回复时,我会做到这一点,但有没有人有更好的解决方案?

谢谢,最大

javascript mailto onbeforeunload

16
推荐指数
3
解决办法
7063
查看次数

标签 统计

javascript ×1

mailto ×1

onbeforeunload ×1