2014-09-29 130 views
1

我试过这个例子,我们在网上看到了很多例子。但我想没有那么简单,适用于所有浏览器(IE 8及以上版本)。带锚点元素的jQuery mailto

我想简单地打开与mailto链接的Outlook窗口。

<a href="#" name="emailLink" id="emailLink">Email</a> 

JQuery的:

$(function() { 
    $('#emailLink').on('click', function (event) { 
    alert("Huh"); 
    var email = '[email protected]'; 
    var subject = 'Circle Around'; 
    var emailBody = 'Some blah'; 
    window.location = 'mailto:' + email + '?subject=' + subject + '&body=' + emailBody; 
    }); 
}); 

当然,我是一个jQuery的新手。以上只是不起作用。它只是闪烁浏览器,但没有打开。我想这是因为window.location

有没有简单的解决方案?我希望这可以在上面的IE8 &以及所有浏览器中工作。

正文自动生成(在JSP中)。

+2

'href'拼写错误。你也选择ID,但标签没有ID – 2014-09-29 16:20:48

+2

#emailLink意味着ID =“emailLink”。在你的情况下,它将[name = emailLink] http://jsfiddle.net/cwa3454s/ – Cheery 2014-09-29 16:23:09

+0

你也需要一个逗号,在''click''之后和'function' – 2014-09-29 16:28:14

回答

10

这里的工作液:

<a href="#" name="emailLink" id="emailLink">Email</a> 

和功能:

$(function() { 
    $('#emailLink').on('click', function (event) { 
     event.preventDefault(); 
    alert("Huh"); 
    var email = '[email protected]'; 
    var subject = 'Circle Around'; 
    var emailBody = 'Some blah'; 
    window.location = 'mailto:' + email + '?subject=' + subject + '&body=' + emailBody; 
    }); 
}); 
1
$(function() { 
    $('[name=emailLink]').click(function() { 
    var email = '[email protected]'; 
    var subject = 'Circle Around'; 
    var emailBody = 'Some blah'; 
    $(this).attr('href', 'mailto:' + email + 
      '?subject=' + subject + '&body=' + emailBody); 
    }); 
}); 

。点击可与.mousedown更换等..或只是

$(function() { 
    $('[name=emailLink]').each(function() { 
    var email = '[email protected]'; 
    var subject = 'Circle Around'; 
    var emailBody = 'Some blah'; 
    $(this).attr('href', 'mailto:' + email + 
      '?subject=' + subject + '&body=' + emailBody); 
    }); 
}); 
+1

我甚至不会在这里做点击事件。只需设置href加载 – 2014-09-29 16:24:27

+0

@LoganMurphy谁知道他为什么要这样做)我的网站上我最初争夺电子邮件,在页面加载后恢复它,并只在点击替换hrefs。 – Cheery 2014-09-29 16:25:42

+0

@LoganMurphy你可以更新/详细说明吗?我的要求很简单。点击锚链接并使用jqeury发送电子邮件。就这样。 – 2014-09-29 16:44:18

0

你的选择是寻找一个ID

$('#emailLink') 

然而,这只是指定的名称。

id="emaillink"添加到锚标签。

+0

更新我的文章。它的错字。 – 2014-09-29 16:42:34

+0

这应该是一个评论,而不是一个ñ答案! :-) – 2014-09-29 17:32:51

+0

这是为什么?它回答了你的问题:“为什么这不起作用?”我怎么知道你有一个错字。 – nickles80 2014-09-29 18:21:03

0

你不需要任何JavaScript/jQuery的在所有的这一点,只是下面的HTML应该做的:

<a href="mailto:[email protected]?subject=Circle Around&body=Some blah" name="emailLink">Email</a> 
+0

我知道如何直接在href中。我需要使用jQuery。谢谢! – 2014-09-29 16:42:17

+0

OP注意到他需要jQuery。 – 2015-07-10 16:46:27

1

如果你不需要地址作为网站上任何地方的文本我会建议这样的:

$('a[data-mail]').on('click', function() { 
    window.location = 'mailto:' + $(this).data('mail')+'@yourdomain.net' + '?subject=Spotflow'; 
}); 

链接woud是这样的:

<a href="#" data-mail="max">Send me a mail</a> 

没有机会机器人!