mailto使用javascript

Sat*_*ish 47 html javascript 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()
Run Code Online (Sandbox Code Playgroud)

Sta*_*anE 64

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

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

或者直接

<body onload="javascript: window.location.href='mailto:mail@example.org';">
Run Code Online (Sandbox Code Playgroud)

  • 需要注意的是,浏览器仍然会触发`onbeforeunload`事件:`window.onbeforeunload = () =&gt; {console.log("onbeforeunload")}; window.location.href = "mailto:mail@example.org";` (2认同)

Ram*_*esh 23

在jsFiddle中找到代码.它使用jQuery来修改链接的href.您可以使用任何其他库.它应该工作.

HTML

<a id="emailLnk" href="#">
    <img src="http://ssl.gstatic.com/gb/images/j_e6a6aca6.png">
</a>
Run Code Online (Sandbox Code Playgroud)

JS

$(document).ready(function() {
    $("#emailLnk").attr('href',"mailto:xyz@something.com");
});?
Run Code Online (Sandbox Code Playgroud)

UPDATE

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

$(document).ready(function() {
    $("#emailLnk").click(function()
     {
         alert('h');
         document.location.href = "mailto:xyz@something.com";
     });
});?
Run Code Online (Sandbox Code Playgroud)


小智 12

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

var mail = document.createElement("a");
mail.href = "mailto:mail@example.org";
mail.click();
Run Code Online (Sandbox Code Playgroud)

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


小智 5

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

<a href="mailto:name@gmail.com">Click here to mail</a>
Run Code Online (Sandbox Code Playgroud)

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