我的网站是基于AJAX的,所以我有一个window.onbeforeunload = function(){};
。但是,我有mailto链接,当我点击那些mailto链接时,会弹出确认重新加载,这是我不喜欢的。有没有办法编写一个函数来删除window.onbeforeunload = function(){};
,从mailto链接中提取邮件编辑器,然后将window.onbeforeunload = function(){};
放回去?
由于
答案 0 :(得分:0)
您可以在锚点后添加这样的脚本:
<a href="mailto: example@address.com">Mail</a>
<script>
(function(w, d){
var anchors = d.getElementsByTagName('a');
var a = anchors[anchors.length - 1];
a.onclick = function(){
var old_unload = w.onbeforeunload;
w.onbeforeunload = null;
w.location = a.href;
setTimeout(function(){
w.onbeforeunload = old_unload;
}, 0);
return false;
};
})(window, document);
</script>
注意:第一个修订版无效,因为w.onbeforeunload = old_unload
在浏览器更改为mailto
页面之前正在运行。使用setTimeout
使赋值异步解决了这个问题。