Javascript Mailto without Href



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

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

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

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

您需要更改执行onbeforenload检查的代码。通常情况下,它是用一个你可以设置的标志来完成的。

您可以覆盖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);
});

Fiddle

http://jsfiddle.net/vE9E6/

您只需要对代码进行一个简单的更改。。。

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

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

最新更新