2016-12-26 58 views
0

我試圖在按鈕被點擊時發送調用電子郵件,並且它的工作正常,但額外的窗口在此過程中被打開,即使我已經無法關閉它試用了close方法。我已經嘗試在IE 10和IE 11中,它不工作。在javascript中使用mailto後無法關閉新窗口

下面是代碼

<html> 
<head> 
<script type='text/javascript'> 
    function sendMail(){ 

     var wi = window.open('mailto:[email protected]?subject=' + encodeURIComponent(document.getElementById("metric").value)); 
     wi.close();  
    } 

</script> 
</head> 
<body> 

<h4>Send e-mail to committee with below subject:</h4> 

<form action="javascript:sendMail()" method="post" enctype="text/plain"> 

<select id="metric"> 

    <option value="test1">test1</option> 
    <option value="test2">test2</option> 
</select> 
<br><br> 

<input type="submit" value="Send"> 

<p></p> 
</form> 
</body> 
</html> 
+0

你不能用'mailto'來做這件事。 – charlietfl

+0

如果我們使用mailto,你的意思是不可能關閉新窗口嗎?任何其他方式存在與javascript – JavaGeek

+1

如果您想完全控制通過您的服務器或雲郵件服務發送電子郵件。 'mailto'由操作系統控制,你無法訪問它的功能 – charlietfl

回答

2

我要繼續前進,並說這是不是你會如何去了解它。

mailto:鏈接打開用戶的默認電子郵件客戶端。如果您刪除腳本中關閉窗口的嘗試,您會看到發生這種情況。但要做任何有用的事情,你必須填寫郵件和發件人等。

因此,用戶需要觸發他們的電子郵件客戶端的實際發送。

你通常會做的是將請求發送到服務器,並讓服務器使用SMTP服務(幾乎所有人都有它)來放置併發送電子郵件。做起來很簡單,它的工作方式取決於你要在哪個服務器上託管你的解決方案。

據我所知,沒有純JavaScript /無服務器的方式來做到這一點。如果你仔細想想,這是有道理的。什麼會阻止某人在網頁上發佈腳本,該網頁會根據您從網頁收集的內容發送一千封電子郵件?

+0

感謝蒂姆爲你的投入,這是有道理的... – JavaGeek