mailto:URL无法在jQuery绑定事件处理程序中工作

时间:2016-07-09 19:04:08

标签: javascript jquery mailto

我有一个图标,点击后会触发mailto:网址。看似简单,但它不起作用。调试时我点击图标,事件处理程序会触发并执行其中的代码,但什么也不做。为什么这不起作用?

<i id="email-icon" class="fa fa-envelope"></i>
$("#email-icon").on("click", function () {
    window.location.href = "mailto:mail@example.org";
});

我觉得这个事件在某种程度上被jQuery取消了?

3 个答案:

答案 0 :(得分:0)

试试这个:

<a href="mailto:mail@example.org"><i id="email-icon" class="fa fa-envelope"></i></a>

答案 1 :(得分:0)

所以,回答我自己的问题......

我的代码实际上没有任何问题。问题在于我的新机器的配置方式!

在控制面板中查看我的默认程序时,我发现Chrome已被设置为处理MAILTO协议的默认程序。 :-(

我使Outlook成为该协议的处理程序,然后它按预期工作。不确定是怎么发生的,但我想发布它以防其他人在未来遇到这个问题。

感谢Rory McCrossan进行调查。

答案 2 :(得分:0)

尝试创建直接链接:

$("#email-icon").on("click", function () {
    var link = "mailto:mail@example.org";
    var obj = $("<a href=\"" + link + "\" target=\"_new\"><span></span></a>");
    obj.appendTo("body");
    obj.children("span:eq(0)").trigger("click");
    obj.remove();
});