我使用填充JavaScript的mailto:
在我的网络应用程序中发送信息,但每次用户按下发送按钮时,它会在打开浏览器之前在浏览器中打开一个新标签页邮件应用程序(Outlook,Gmail等)。
有没有办法防止空白标签打开?
编辑:以下所有主流浏览器都会遇到此问题:Internet Explorer,Firefox和Google Chrome。
我使用window.open()
发送电子邮件,是否有其他已知替代方案?
以下是我发送电子邮件的方式:
var mailto_link = 'mailto:'+email+'?subject='+subject+'&body='+body_message;
var win = window.open(mailto_link,'emailWindow');
我不想使用window.location.href
,因为我在用户发送电子邮件后显示了一条消息。
答案 0 :(得分:24)
感谢您的编辑。确实有另一种选择:
window.location.href = "mailto:mail@domain.tld";
alert("Thank you!");
我不想使用window.location.href,因为我正在显示一个 用户发送电子邮件后的消息。
我真的没有得到这个。将mailto:
与window.location.href
答案 1 :(得分:8)
AmShaegar的 window.location.href 解决方案效果很好,但它在我开发的复杂应用程序中引起了副作用。
我终于想出了一个可能感兴趣的解决方案:
$('<iframe src="mailto:mail@domain.tld">').appendTo('body').css("display", "none");
请参阅此plunker:http://plnkr.co/edit/J0LvQU?p=preview
答案 2 :(得分:4)
空白标签由window.open()
打开。你不需要那个。
mailto链接的语法应该类似于
<a href="mailto:your@email.address?subject=Comments about the color blue">Contact Us</a>
有关详细信息,请参阅http://www.addressmunger.com/mailto_syntax_tutorial/。
答案 3 :(得分:3)
短暂间隔后关闭窗口:
var mailto_link = 'mailto:'+email+'?subject='+subject+'&body='+body_message;
var win = window.open(mailto_link,'emailWindow');
setTimeout(function() { win.close() }, 500);
答案 4 :(得分:2)
尝试命名窗口(myWindow)并添加close()命令:
<script>
myWindow=window.open("mailto:emailaddress@example.com");
myWindow.close();
</script>';
这应该关闭额外的浏览器窗口并保持电子邮件应用程序打开。至少它对我有用。
答案 5 :(得分:1)
作记录:
使用目标属性创建锚标记,如下所示:
<div>
<a target="_self" href="mailto:mail1@domain1.com;%20mail2@domain2.com?subject=Mail%20sending&body=etc...">
Send Mail
</a>
</div>
答案 6 :(得分:0)
不,这严格取决于浏览器处理新标签的方式。我花了几个小时寻找解决方案,解决方案,任何事情......
firefox:options - &gt;翼片
safari:preferences - &gt;翼片
答案 7 :(得分:0)
<a className="prom-links-anchor" tabIndex="0" aria-label="Email" href={ "mailto:" + eid + "@yahoo.com"}
role="link" nocm="true" title={ "Email"} rel="email" data-cs={contentSource} data={resultPosition + 1}
onMouseDown={this.handleMouseDown.bind(this)} onKeyDown={this.handleKeyPressEvent.bind(this)}
onContextMenu={e=> e.preventDefault()}
>
<div className="icon-email" title="Email" href={"mailto:" + eid + "@yahoo.com"} rel="email"
data-cs={contentSource} data={resultPosition + 1} />
<div className="icon-label-email" aria-hidden="true" href={"mailto:" + eid + "@yahoo.com"}
title={"Email"} rel="hc-email" data-cs={contentSource} data={resultPosition + 1}
>Email</div>
</a>