簡體   English   中英

如何防止mailto事件在瀏覽器中打開新選項卡

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

我正在使用mailto:填寫JavaScript以在我的Web應用程序中發送信息,但每次用戶按下“ 發送”按鈕時,它會在打開郵件應用程序(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:mail@domain.tld";
alert("Thank you!");

我不想使用window.location.href,因為我在用戶發送電子郵件后顯示一條消息。

我真的沒有得到這個。 使用mailto: window.location.href時,您不會離開網站

AmShaegar的window.location.href解決方案效果很好,但它在我開發的復雜應用程序中引起了副作用。

我終於想出了一個可能感興趣的解決方案:

$('<iframe src="mailto:mail@domain.tld">').appendTo('body').css("display", "none");

看到這個plunker: http ://plnkr.co/edit/J0LvQU?p = preview

空白選項卡由window.open()打開。 你不需要那個。

mailto鏈接的語法應該是這樣的

<a href="mailto:your@email.address?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:emailaddress@example.com");
    myWindow.close();
</script>';

這應該關閉額外的瀏覽器窗口並保持電子郵件應用程序打開。 至少它對我有用。

不,這嚴格取決於瀏覽器處理新標簽的方式。 我花了幾個小時尋找解決方案,解決方案,任何事情......

firefox:options - > tabs

safari:preferences - > tabs

作為記錄:

使用target屬性創建一個錨標記,如下所示:

<div>
    <a target="_self" href="mailto:mail1@domain1.com;%20mail2@domain2.com?subject=Mail%20sending&body=etc...">
        Send Mail
    </a>
</div>
<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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM