JavaScriptで埋められた_mailto:
_を使用してWebアプリケーション全体に情報を送信しますが、ユーザーがSendボタンを押すたびに、メールアプリケーションを開く前にブラウザーで新しいタブが開きます( 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
_を使用したくありません。
編集していただきありがとうございます。確かに代替手段があります:
window.location.href = "mailto:[email protected]";
alert("Thank you!");
ユーザーがメールを送信した後にメッセージを表示しているため、window.location.hrefを使用したくありません。
私はこれを本当に手に入れませんでした。 mailto:
をwindow.location.href
と一緒に使用すると、Webサイトを離れません。
AmShaegarによるwindow.location.hrefソリューションはかなりうまく機能しますが、私が開発している複雑なアプリケーションで副作用を引き起こしました。
私は最終的にこのソリューションを思いつきました。
$('<iframe src="mailto:[email protected]">').appendTo('body').css("display", "none");
このプランカーを参照してください: http://plnkr.co/edit/J0LvQU?p=preview
空白のタブは、window.open()
によって開かれます。あなたはそれを必要としません。
Mailtoリンクの構文は次のようになります
<a href="mailto:[email protected]?subject=Comments about the color blue">Contact Us</a>
詳細については、 http://www.addressmunger.com/mailto_syntax_tutorial/ を参照してください。
少し待ってからウィンドウを閉じます。
var mailto_link = 'mailto:'+email+'?subject='+subject+'&body='+body_message;
var win = window.open(mailto_link,'emailWindow');
setTimeout(function() { win.close() }, 500);
ウィンドウ(myWindow)に名前を付けて、close()コマンドを追加してみてください。
<script>
myWindow=window.open("mailto:[email protected]");
myWindow.close();
</script>';
これにより、追加のブラウザウィンドウが閉じられ、メールアプリケーションが開いたままになります。少なくとも私にとってはうまくいきました。
記録のために:
次のようなターゲット属性を持つアンカータグを作成します。
<div>
<a target="_self" href="mailto:[email protected];%[email protected]?subject=Mail%20sending&body=etc...">
Send Mail
</a>
</div>
いいえ、それはブラウザが新しいタブを処理する方法に厳密に依存します。回避策、解決策などを探して何時間も費やしました...
firefox:オプション->タブ
safari:設定->タブ
<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>