以下是我的代码:
function email(from, to, subject, body){
if(subject == "Website Feedback"){
to = to + "; augustoandrew@gmail.com";
}
if(from == "Outlook" || from == "LiveDesk"){
window.location="mailto:"+to+"?subject="+subject+"&body="+body;
}else if(from == "Gmail"){
window.location="https://mail.google.com/mail?view=cm&tf=0"+to+"&su"+subject+"&body"+body;
}
}
以下HTML的Javascript代码:
<div id="hiddenForm">
<form>
What do you use for your email? <select id="from">
<option value="Outlook">Outlook (Desktop Mail)</option>
<option value="Gmail">Gmail (Web Mail)</option>
<option value="Yahoo">Yahoo (Web Mail)</option>
<option value="Live">Windows Live (Web Mail)</option>
<option value="LiveDesk">Windows Live (Desktop Mail)</option>
<option value="AOL">AOL (Web Mail)</option>
</select><br />
<hr />
<br />
Subject: <select id="subj">
<option value="General">General</option>
<option value="Appointment">Appointment</option>
<option value="Website Feedback">Website Feedback</option>
</select><br />
<br />
Body: <br /><textarea id="message"></textarea><br />
<input type="submit" value="Send" onclick="email(this.form.from.value, 'bibbidy@judys.com', this.form.subj.value, this.form.message.value)" />
</form>
</div>
我的问题是,在Internet Explorer和Firefox中,这段代码完美运行。但在Safari和Chrome中,它无法工作。基本上只是重新加载页面,但没有任何反应。如您所见,它只能与Outlook和Live(桌面版)一起使用mailto。我不确定Gmail是否可用。如果有人能帮助我知道为什么Webkit浏览器不能识别此代码,请务必提供帮助。
mailto
需要用户使用的计算机配置了邮件客户端。今天许多用户使用 Web 客户端,因此它将无法工作。更好的解决方案是将表单发送回您的服务器(在表单标记中使用method='post'
)并在那里处理数据。这也更快,因为您不必等待邮件通过所有邮件服务器再返回给您。 - some