【问题标题】:Detecting web-based mail client vs local mail client for a mailto link检测基于 Web 的邮件客户端与本地邮件客户端的 mailto 链接
【发布时间】:2015-10-28 12:23:15
【问题描述】:

我有一个 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 客户端?

【问题讨论】:

    标签: javascript email mailto


    【解决方案1】:

    这有点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>
    

    【讨论】:

      猜你喜欢
      • 2017-07-17
      • 1970-01-01
      • 2011-05-04
      • 2011-09-26
      • 2011-02-13
      • 2021-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多