可能与How to open mailto link in Chrome with Window.open without creating a new tab?mailto链接(在铬)正在触发window.onbeforeunload - 我可以防止这个?
大家好。我有一个表格页面,我已经把window.onbeforeunload确认,阻止人们离开导航和意外失去他们的变化:
window.onbeforeunload = function(){
if(changed)
return "You have unsaved changes. Do you really want to leave this page without saving?";
};
其中changed
是一个变量i设置为true,当用户进行任何更改。这很好。不过,我也加入了一些mailto链接到页面,像这样:
<a class="button button-alt" href="mailto:[email protected]">Report a problem</a>
即使邮寄地址是不是从页面(它打开用户的默认邮件应用程序)进行导航了,它仍然触发onbeforeunload事件,提示确认框,这是烦人的。我可以在链接上设置target="_blank"
,但用户被留在空的标签中。
我可以将mailto链接设置为不触发onbeforeunload事件吗?我想到了另一个临时性的javascript变量,它导致onbeforeunload确认不会触发,但这似乎有点肮脏。无论如何,我会这样做,而我等待回应,但是有没有人有更好的解决方案?
感谢,最大
这看起来好多了 - 谢谢! – 2015-02-20 09:29:53
真的吗?你回答3年后的帖子?大声笑唯一的区别是添加onclick一个不显眼的事件...大声笑 – epascarello 2015-02-20 17:18:44
依赖于jQuery没有理由,依赖于全局变量。约翰·库拉克的回答如下更好。它使用隐藏的iframe,完全消除了对JavaScript的需求,更不用说jQuery。然后可以自行包含模板文件中的修复。 – mGuv 2015-11-04 15:57:58