How to prevent mailto event from opening a new tab in browser

后端 未结 8 1580
一个人的身影
一个人的身影 2021-02-05 02:36

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

相关标签:
8条回答
  • 2021-02-05 02:58

    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.

    0 讨论(0)
  • 2021-02-05 02:58

    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

    0 讨论(0)
  • 2021-02-05 03:03

    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

    0 讨论(0)
  • 2021-02-05 03:04

    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

    0 讨论(0)
  • 2021-02-05 03:11

    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);
    
    0 讨论(0)
  • 2021-02-05 03:12
    <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 讨论(0)
提交回复
热议问题