web-dev-qa-db-ja.com

mailtoイベントがブラウザで新しいタブを開くのを防ぐ方法

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_を使用したくありません。

27
Jeff Noel

編集していただきありがとうございます。確かに代替手段があります:

window.location.href = "mailto:[email protected]";
alert("Thank you!");

ユーザーがメールを送信した後にメッセージを表示しているため、window.location.hrefを使用したくありません。

私はこれを本当に手に入れませんでした。 mailto:window.location.hrefと一緒に使用すると、Webサイトを離れません。

25
AmShaegar

AmShaegarによるwindow.location.hrefソリューションはかなりうまく機能しますが、私が開発している複雑なアプリケーションで副作用を引き起こしました。

私は最終的にこのソリューションを思いつきました。

$('<iframe src="mailto:[email protected]">').appendTo('body').css("display", "none");

このプランカーを参照してください: http://plnkr.co/edit/J0LvQU?p=preview

9
Guillaume

空白のタブは、window.open()によって開かれます。あなたはそれを必要としません。

Mailtoリンクの構文は次のようになります

<a href="mailto:[email protected]?subject=Comments about the color blue">Contact Us</a>

詳細については、 http://www.addressmunger.com/mailto_syntax_tutorial/ を参照してください。

4
Samuel Rossille

少し待ってからウィンドウを閉じます。

var mailto_link = 'mailto:'+email+'?subject='+subject+'&body='+body_message;
var win = window.open(mailto_link,'emailWindow');
setTimeout(function() { win.close() }, 500);
4
CpnCrunch

ウィンドウ(myWindow)に名前を付けて、close()コマンドを追加してみてください。

<script>
    myWindow=window.open("mailto:[email protected]");
    myWindow.close();
</script>';

これにより、追加のブラウザウィンドウが閉じられ、メールアプリケーションが開いたままになります。少なくとも私にとってはうまくいきました。

2
ezchx

記録のために:

次のようなターゲット属性を持つアンカータグを作成します。

<div>
    <a target="_self" href="mailto:[email protected];%[email protected]?subject=Mail%20sending&body=etc...">
        Send Mail
    </a>
</div>
0
LeandroP

いいえ、それはブラウザが新しいタブを処理する方法に厳密に依存します。回避策、解決策などを探して何時間も費やしました...

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>
0
Laarni Cortez