クリックすると、mailtoにリンクする画像があります。
<a id="mailto" href="mailto:[email protected]" target="_newtab" >
<img src="@Url.Content("~/Content/HomePage/email.png")" alt="email" /></a>
ただし、現在クリックすると、メールオプションを起動してmailtoアプリケーションを選択し、選択すると、現在のタブでmailtoリンクが開きます。これにより、ユーザーはアプリケーションを離れます。
そのため、ページに(Gmail、yahooなどで)メールを送信して、新しいタブまたはウィンドウで開くようにします。これを行う方法はありますか? target = "_ newtab"とtarget = "_ blank"の両方を試しましたが、両方とも機能しませんでした。
どんな助けも大歓迎です..ありがとう...
(他に方法がない場合はjQueryメソッドも使用できます、ありがとう)
mailtoは、ユーザーのデフォルトの電子メールクライアントを呼び出します。どのインスタンスでもウィンドウやタブは開きません。ウィンドウまたはタブを使用する場合は、フォームを構成し、フォームをウィンドウ/タブで開くことができるようにする必要があります。もちろん、サーバーで使用可能な方法でメールを送信するようにフォームを構成する必要があります。
この情報は古くなっていますが、Gmailや他の人がブラウザのリンクを介して動作するようになったため、そうすることが可能になりました。ただし、システムメールクライアントで開かない場合は新しいタブでのみ開き、ウェブメールクライアントの場合は新しいタブで開くようにしたいという問題があります。そうでない場合、たとえばOutlookユーザーには空白のタブが表示されますこれは、特にOutlookユーザーであるため、見当違いです。
この回答は、この回答に基づいています 新しいタブ/ウィンドウでhref mailtoリンクを開きます 。
現在、新しいブラウザはsomeWebメールインターフェイス(Gmail、Yahooメール、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>
https://stackoverflow.com/a/9880404/110702 へのクレジット
それだけだと思います。
あいさつ、マルコス。
これにはJavascript/Jqueryは必要ありません。標準のリンクが機能します(バグによるFirefox v30 +を除く、以下を参照)。
<a href="mailto:[email protected]" target="_blank">
Firefox 30以降、 バグ が原因でFirefoxで動作しません。同じタブで開き、履歴を置き換えますので、戻ると、mailto:リンクがあったページに戻りません。
これは古い質問ですが、見つかった場合、このスレッドには最良の回答がありました。上記のMarcosの回答を変更して、クライアントに外部メールハンドラーがある場合に作成される空白のタブも閉じるようにしました
JS(イベントハンドラーのw\jQuery)
$(document).on('click', 'a[href^=mailto]', function(e) {
var checkClose, checkLoaded, event, href, i, len, loadEvents, results, t, wndw;
e.preventDefault();
href = this.href;
wndw = window.open(href, 'mail');
checkClose = function() {
console.log('checkClose');
try {
wndw.location.href;
return wndw.close();
} catch (error) {
return console.log('webmail');
}
};
t = setTimeout(checkClose, 5000);
try {
checkLoaded = function() {
console.log('loaded');
clearTimeout(t);
return t = setTimeout(checkClose, 2000);
};
wndw.onload = checkLoaded;
loadEvents = ["DomContentLoaded", "load", "beforeunload", "unload"];
results = [];
for (i = 0, len = loadEvents.length; i < len; i++) {
event = loadEvents[i];
results.Push(wndw.addEventListener(event, checkLoaded));
}
return results;
} catch (error) {
return checkLoaded();
}
});
バリアント1(JavaScript):
<script>
// Open mailto links in a new tab
function mailto(email, subject, body) {
var url;
url = 'mailto:' + email;
url += '?subject=' + subject;
url += '&body=' + body;
window.open(url);
}
</script>
<a href="#" onclick="mailto('[email protected]', 'Subject', 'Body');event.preventDefault()">[email protected]</a>
バリアント2(JavaScript):
<script>
// Open mailto links in a new tab
function mailto(th) {
var url = th.getAttribute('href');
window.open(url);
}
</script>
<a href="mailto:[email protected]?subject=Subject&body=Body" onclick="mailto(this);event.preventDefault()">[email protected]</a>
バリアント3(jQuery):
<script>
// Open mailto links in a new tab
$('#mailto').click(function (e) {
e.preventDefault();
var url = $(this).attr('href');
window.open(url);
});
</script>
<a href="mailto:[email protected]?subject=Subject&body=Body" id="mailto">[email protected]</a>
バリアント4(jQuery):
<script>
// Open mailto links in a new tab
$("a[href^='mailto:']").click(function(e) {
e.preventDefault();
var href = $(this).attr('href');
var target = $(this).attr('target');
window.open(href, target ? target : '_self');
});
</script>
<a href="mailto:[email protected]?subject=Subject&body=Body" target="_blank">[email protected]</a>
HTMLターゲット属性: https://www.w3schools.com/tags/att_a_target.asp