2011-12-18 140 views
12

我有,当单击,我要链接到一个mailto图像:打开HREF邮寄地址在新标签页的链接/窗口

<a id="mailto" href="mailto:[email protected]" target="_newtab" > 
     <img src="@Url.Content("~/Content/HomePage/email.png")" alt="email" /></a> 

然而,目前一旦其点击,将推出电子邮件选项选择一个mailto应用程序,一旦我选择,mailto链接在当前选项卡中打开。这将导致用户离开应用程序。

所以,我希望页面发送的电子邮件(通过Gmail,雅虎等)要么在新标签页中打开,要么在窗口中打开。任何想法如何做到这一点?我尝试了target =“_ newtab”和target =“_ blank”,但两者都不起作用。

任何帮助将非常感激..谢谢...

(jQuery的方法也是可以接受的,如果没有别的办法,谢谢)

+1

“我想让mailto链接在新标签页或窗口中打开” - 您希望在新标签页或窗口中出现什么内容?请尽可能具体。 – evan 2011-12-18 04:42:00

+0

该页面发送的电子邮件,无论是Gmail,雅虎等 – shennyL 2011-12-18 04:45:09

+1

这是不可能的。抱歉。 – jamieb 2011-12-18 04:46:32

回答

7

的mailto调用用户的默认邮件客户端。它在任何情况下都不会打开窗口或选项卡。如果您想使用窗口或选项卡,则需要配置窗体并允许窗体在窗口/选项卡中打开。当然,您必须将表单配置为使用服务器上可用的任何方法发送邮件。

+16

这在2011年可能是事实,但事实并非如此。您可以使用target =“_ blank”在新选项卡中打开Gmail等邮件客户端。不幸的是,这是不够的,因为它会为使用独立客户端的人启动一个空白标签。 – 2014-01-21 16:04:24

+1

你如何在标签中打开Outlook(最受欢迎的电子邮件客户端)?始终可以在窗口或选项卡中打开基于Web的电子邮件服务。但基于网络的电子邮件服务不是大部分电子邮件客户端。 – Scott 2014-01-21 16:53:56

+2

这个答案已经过时,某些邮件客户端在标签中打开,如Gmail或收件箱 – 2016-05-20 13:41:55

20

此信息已过时,现在可以这样做我相信,因为gmail和其他人现在通过浏览器链接工作。但是,如果不在系统邮件客户端中打开,只希望它在新选项卡中打开,并且在新选项卡中打开(如果它是Webmail客户端),否则例如Outlook用户会看到空白选项卡,这是迷惑,特别是因为他们是Outlook用户。

+0

我的awnser基于你的文章,我只是添加了代码。但你值得信任。 – 2014-07-20 20:11:40

-1

你尝试过'中点击'(“Open in new tab”)吗? 它为我

http://forums.mozillazine.org/viewtopic.php?f=7&t=1842595

虽然它看起来特别奇怪地问用户中间击

反正我发现,似乎工作在FF 25/Chrome 35版

伪解决方案

1.-设置你的链接是这样的:

<a href="javascript:void()" 
class="mailToLink" 
data-mail="[email protected]">[email protected] </a> 

2:使用JavaScript(与JQ uery中的例子)设置一个onlclick事件,如:

$('.mailToLink').on('click', function(){ 
     mailto=$(this).data('mail'); 
     w=window.open('','_blank','',true); 
     w.location.href='mailto:'+mailto; 
     w.focus(); 
    }); 

这将打开一个空白的新窗口/标签,后来改变其位置,所以邮件协议处理程序是无法TOTO行为,直到新的窗口已经打开

未经本地邮件客户端测试(Outlook等)

11

此答案是根据此答案Open the href mailto link in new tab/window

现在,新的浏览器支持一些网络邮件界面(如Gmail,雅虎邮箱,AOL等)。因此,我们可以简单地打开一个新窗口(支持旧浏览器,新浏览器只会打开一个新标签),并使用preventDefault和默认链接重定向添加一个后备(非JavaScript用户)。

http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-flow-cancelation

https://developer.mozilla.org/es/docs/DOM/event.preventDefault

https://developer.mozilla.org/en-US/docs/Web/API/Window.open

像这样:

<a onClick="javascript:window.open('mailto:[email protected]', 'mail');event.preventDefault()" href="mailto:[email protected]">Send a e-mail</a>

http://jsfiddle.net/cNUNP/

贷记到https://stackoverflow.com/a/9880404/1107020

猜这就是全部。

问候,马科斯。

+1

在Firefox 40中没有适用于我。 – Jabba 2015-09-01 15:29:06

+0

小提琴在FF43中工作 – kn00tcn 2015-12-25 07:58:36

11

你不需要Javascript/Jquery这个。标准链接有效(除了Firefox v30 +由于bug,请参见下文)。

<a href="mailto:[email protected]" target="_blank"> 

火狐30的,无法在Firefox由于bug工作。它打开在同一个选项卡上并替换历史记录,因此反击不会将您带回到mailto:链接所在的页面。

+0

这是正确的。我正在努力寻找解决方案。 _blank完全符合Costa所说的。我们如何绕过并打开新标签中的Gmail页面或可能弹出一个JavaScript窗口? – OldDogLearningNewPerlTricks 2015-02-25 15:12:25

+2

仅仅8个月后的历史,错误依然存在。 – Leonidas 2015-03-30 12:32:07

+2

2016更新:bug仍然没有修复。最初是在2011年打开的,所以值得怀疑的是,除非错误得到了大量的upvotes(提示,提示),否则这个问题将得到解决:https://bugzilla.mozilla.org/show_bug.cgi?id = 646552 – Costa 2016-02-19 07:18:29

-1

有一个便宜的HTML的黑客攻击,这个问题.....

一个页面上的链接...

<a href="/mailto.html" target="_blank">Mail</a> 

在mailto.html ....

<meta HTTP-EQUIV="REFRESH" content="0; url=mailto:[email protected]"> 

If nothing pops up click.....<a href="mailto:[email protected]">Mail!</a> 

_blank打开一个新的选项卡/窗口,其余的元标记完成。链接作为后备场外。

相关问题