我有一个Web应用程序,用户可以使用mailto链接发送电子邮件。基本上,我连接一个包含主题,正文和收件人的字符串,然后代码触发mailto,有点像这样:
var MailToLink = 'mailto:' + TheEmailString;
window.open(MailToLink, '_blank'); //option 1
window.open(MailToLink); //option 2
最初,我只有选项2,因为在我的开发机器上我有Outlook。但是当我开始进行一些alpha测试时,另一个用户正在使用Gmail,而mailto链接将在与我的应用程序相同的窗口中打开,因此我将代码更改为选项2,以便在另一个窗口中打开电子邮件。现在的问题是,当用户在Outlook上时,链接会打开Outlook消息和新的空白窗口。
有没有办法检测用户是使用基于Web的电子邮件客户端还是本地客户端?我想做这样的事情:
if (IsUsingWebMailClient) {
window.open(MailToLink, '_blank');
} else {
window.open(MailToLink);
}
我不确定这是否可行;如何使用JavaScript检测mailto客户端?
答案 0 :(得分:0)
它有点像 hack ,但是有效。超时可能会有所不同,您可以用越来越少的毫秒进行测试。
<html>
<head>
<script type="text/javascript">
function mailTo(address){
var windowRef = window.open('mailto:'+address, '_blank');
var body = windowRef.document.getElementsByTagName('body')
if(!body.lenth) setTimeout(windowRef.close,300)
}
</script>
</head>
<body>
<input type="button" value="send email" onclick="mailTo('email@gmail.com')" >
</body>
</html>