我有一个图标,点击后会触发mailto:
网址。看似简单,但它不起作用。调试时我点击图标,事件处理程序会触发并执行其中的代码,但什么也不做。为什么这不起作用?
<i id="email-icon" class="fa fa-envelope"></i>
$("#email-icon").on("click", function () {
window.location.href = "mailto:mail@example.org";
});
我觉得这个事件在某种程度上被jQuery取消了?
答案 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();
});