【发布时间】:2012-10-09 14:52:36
【问题描述】:
下面是我的代码:
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 中,它不起作用。它基本上只是重新加载页面,但没有任何反应。如您所见,它仅设置为使用 mailto 与 Outlook 和 Live(桌面版)一起使用。我不确定 Gmail 是否有效。如果有人可以帮助我知道为什么 webkit 浏览器无法识别此代码,请这样做。
【问题讨论】:
-
我不确定浏览器,但我知道我不喜欢 mailto 链接! SCNR
-
请注意:使用
mailto要求用户正在使用的计算机已配置邮件客户端。如今,许多用户使用 Web 客户端,因此无法正常工作。一个更好的解决方案是将表单发送回您的服务器(在表单标签中使用method='post')并在那里处理数据。它也快得多,因为您不必等待邮件通过所有邮件服务器才能返回给您。 -
是的,我明白这一点。出于测试目的,现在我想确保我可以从中构建电子邮件。当它成为服务器应用程序时,我会考虑到这一点并相应地重构我的代码。现在虽然我只是在我的电脑上测试它,我已经设置了桌面客户端。
-
这是您的决定,但我认为您正在浪费时间使用大约 15 年前已经过时的方法。您可以在single package 中下载具有脚本和数据库功能的完整网络服务器。有了它,您可以编写代码,当它完成时您可以移动到真实服务器,您只需编辑配置文件即可让您的应用程序使用真实服务器上的正确资源。
标签: javascript html webkit mailto