没有Href的Javascript Mailto

时间:2013-11-26 14:15:21

标签: javascript jquery

我有点击链接的要求,它应该打开要发送给我点击其名称的用户的邮件。我是通过构建Anchor标签并通过设置href属性来实现的,我面临的问题是,我们的平台有一个功能,显示警告询问你想要导航或不。当我点击我的链接时,不应该发出此警报,但不幸的是,当我点击链接时,它就会出现。有替代方案吗? [注意:我无法更改平台代码]

var htmlElement = $('<a class="b">('+_email+')</a>').attr('href','mailto:'+_email);

我也试过了jquery点击,但没有用

$('.b').click(function() {
        window.location = $(this).attr('href');
    }).click();

2 个答案:

答案 0 :(得分:0)

您需要更改执行onbeforeunload检查的代码。通常情况下,您可以设置一个标志。

您可以覆盖onbeforeunload并在单击链接后重新应用它。

示例:

<强> HTML

<a class="mail" href="mailto:foo@example.com">Mail</a>
<br/>
<a href="example.com">Link</a>

<强>的JavaScript

window.onbeforeunload = function(e) {
  return 'Dialog text here.';
};

$(".mail").on("click", function () {
   var _onbeforeunload = window.onbeforeunload;
    window.onbeforeunload = $.noop;
    window.setTimeout( function () {
        window.onbeforeunload = _onbeforeunload;
    },20);
});

<强>小提琴

http://jsfiddle.net/vE9E6/

答案 1 :(得分:0)

您只需要对代码进行一次简单的更改......

$(document).on("click", "a.b", function(e) {
    e.preventDefault();
    window.open(this.href);
});

停止单击链接导致的默认操作,然后使用window.open在新窗口中打开mailto链接,而不是更改位置。这将停止onbeforeunload事件触发。