62

每当用户单击图像时,我想使用“收件人地址”打开一个新的 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()
4

7 回答 7

84

不需要 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';">
于 2013-07-18T12:25:04.600 回答
30

在 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 仅在点击事件期间已知

$(document).ready(function() {
    $("#emailLnk").click(function()
     {
         window.location.href = "mailto:xyz@something.com";
     });
});​
于 2012-04-16T11:01:15.897 回答
21

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

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

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

于 2018-03-29T15:24:59.613 回答
4

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

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

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

注意不要阻止默认行为(event.preventDefault),我们必须让它这样做,因为我们刚刚替换了href where to go

我认为机器人看不到它,该地址受到垃圾邮件的保护。

于 2013-12-06T16:47:29.577 回答
4

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

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

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

于 2014-01-30T03:10:08.570 回答
-1
document.location.href = "mailto:chrisgreg23@googlemail.com"
于 2021-10-10T20:21:03.483 回答
-1

我不知道它是否有帮助,但是使用 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);
    });

我希望它有所帮助。

于 2020-04-24T07:19:27.003 回答