可能与如何使用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没有离开页面(它正在打开用户默认邮件应用程序),它仍然会触发onbeforeunload事件,提示确认框,这很烦人.我可以target="_blank"在链接上设置它,但随后用户将坐在空白标签中.
我可以将mailto链接设置为不触发onbeforeunload事件吗?我想到了一个可怕的hacky方式,通过使用另一个临时的javascript变量,导致onbeforeunload确认不触发,但它似乎有点脏.无论如何,当我等待回复时,我会做到这一点,但有没有人有更好的解决方案?
谢谢,最大