mailto使用javascript

时间:2012-04-16 10:34:22

标签: javascript html mailto

每当用户点击图片时,我想用“收件人地址”打开一个新的Outlook邮件模板。我已经在html页面中返回我的代码(与图像链接),每当加载javascript时应该打开一个新的邮件模板。但功能不起作用。请告诉我代码中的错误。

body onLoad="redirect()"

script language="JavaScript"

function redirect() 

      var email = "xyz@something.com"
      var mailto_link = 'mailto:' + email
      window = window.open(mailto_link, 'emailWindow')
      if (window && window.open && !window.closed)         
          window.close()

6 个答案:

答案 0 :(得分:60)

不需要jQuery。而且没有必要打开一个新窗口。不会将HTTP数据返回给浏览器的协议(mailto:irc://magnet:ftp://(< - 它取决于它的实现方式,通常是浏览器可以在同一窗口中查询内置的FTP客户端,而不会丢失当前内容。在你的情况下:

function redirect()
{
    window.location.href = "mailto:mail@example.org";
}
<body onload="javascript: redirect();">

或直接

<body onload="javascript: window.location.href='mailto:mail@example.org';">

答案 1 :(得分:22)

请找到code in jsFiddle。它使用jQuery来修改链接的href。您可以使用任何其他库。它应该工作。

HTML

<a id="emailLnk" href="#">
    <img src="http://ssl.gstatic.com/gb/images/j_e6a6aca6.png">
</a>

JS

$(document).ready(function() {
    $("#emailLnk").attr('href',"mailto:xyz@something.com");
});​

<强>更新

另一个代码示例,如果id仅在click事件期间知道

$(document).ready(function() {
    $("#emailLnk").click(function()
     {
         alert('h');
         document.location.href = "mailto:xyz@something.com";
     });
});​

答案 2 :(得分:9)

使用JavaScript,您可以使用以下内容“动态”创建链接:

    var mail = document.createElement("a");
    mail.href = "mailto:mail@example.org";
    mail.click();

浏览器将其重定向到计算机上安装的某个邮件客户端,而不会丢失当前窗口的内容......并且您不需要任何像“jQuery”这样的API。

答案 3 :(得分:4)

我只是使用了这个javascript代码(使用jquery,但并不是绝对必要的):

    $( "#button" ).on( "click", function(event) {
         $(this).attr('href', 'mailto:me@domain.com?subject=hello');
    });

当用户点击链接时,我们会替换所点击元素的href属性。

小心不要阻止默认的comportment(event.preventDefault),我们必须让它做,因为我们刚刚更换了href去哪里

我认为机器人无法看到它,地址可以防止垃圾邮件。

答案 4 :(得分:4)

您可以使用简单的mailto,请参阅下面的简单标记。

<a href="mailto:name@gmail.com">Click here to mail</a>

点击后,它将打开您的Outlook或您设置的任何电子邮件客户端。

答案 5 :(得分:0)

我不知道它是否有帮助,但是我使用jQuery隐藏电子邮件地址:

    $(function() {
        // planque l'adresse mail
        var mailSplitted 
            = ['mai', 'to:mye', 'mail@', 'addre', 'ss.fr'];

        var link = mailSplitted.join('');
        link = '<a href="' + link + '"</a>';
        $('mytag').wrap(link);
    });

我希望这会有所帮助。