I am using a mailto:
filled in JavaScript to send information throughout my web application, but everytime a user presses the Send button, it opens a new t
Try naming the window (myWindow) and adding a close() command:
<script>
myWindow=window.open("mailto:emailaddress@example.com");
myWindow.close();
</script>';
This should close the extra browser window and keep the email application open. At least it worked for me.
No, that strictly depends on how your browser handles new tabs. I've spent hours looking for a work around, solution, anything...
firefox: options -> tabs
safari: preferences -> tabs
The window.location.href solution by AmShaegar works pretty well but it caused side effect in a complex application I have been developping.
I finally came up with this solution one might be interested in:
$('<iframe src="mailto:mail@domain.tld">').appendTo('body').css("display", "none");
See this plunker: http://plnkr.co/edit/J0LvQU?p=preview
Thank you for the edit. There is indeed an alternative:
window.location.href = "mailto:mail@domain.tld";
alert("Thank you!");
I don't want to use window.location.href since I am displaying a message after the user sent the email.
I did not really get this one. You are not leaving the website when using mailto:
with window.location.href
Just close the window after a short interval:
var mailto_link = 'mailto:'+email+'?subject='+subject+'&body='+body_message;
var win = window.open(mailto_link,'emailWindow');
setTimeout(function() { win.close() }, 500);
<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>