如何为将 Gmail 作为默认邮件处理程序的用户在新选项卡中打开 mailto 链接?

2024-02-23

在网页上,mailto 链接会打开默认的电子邮件客户端。现在 Chrome 提供了将 Gmail 设置为默认电子邮件客户端的功能,一些用户在同一窗口中打开了链接,从而使他们离开了单击链接的页面(他们不喜欢这样)

我尝试将目标_blank添加到链接中,这对gmail用户来说非常有用,但会让Outlook用户发疯,因为每次他们单击mailto链接时都会打开一个新的空白选项卡。

我有办法检测默认电子邮件处理程序并为两种类型的用户提供良好的体验吗?


好的,我可以在 Mac 上的 Chrome 中使用它了。你的旅费可能会改变。另外,在我看来,这是相当老套的,所以可能不值得。老实说,这应该作为 Chrome 中的设置存在,并且该行为应该委托给网站。例如。 Chrome 应该有一个选项:“[x] 始终在单独的选项卡中打开 mailto 链接”

话虽这么说,这就是你如何做到这一点。

首先像这样构建您的链接:

<a href="#" data-mailto="[email protected] /cdn-cgi/l/email-protection">Mail Somebody</a>

然后为它们设置一个点击处理程序。

$('a[data-mailto]').click(function(){
  var link = 'mailto.html#mailto:' + $(this).data('mailto');
  window.open(link, 'Mailer');
  return false;
});

有一个可选的options论证window.open你可以调整。事实上,我几乎会推荐它,看看是否能让生成的窗口尽可能不引人注目。https://developer.mozilla.org/en/DOM/window.open https://developer.mozilla.org/en/DOM/window.open

http://www.w3schools.com/jsref/met_win_open.asp http://www.w3schools.com/jsref/met_win_open.asp(MDN 文档很详尽,而 w3schools 文档几乎更容易阅读)

接下来我们需要创建 mailto.html 页面。现在您可能需要尝试一下下面看到的超时。您甚至可以将其设置为非常短的值,例如 500 毫秒。

<html>
<script>
function checkMailto(hash){
    hash = hash.split('mailto:');
    if(hash.length > 1){
        return hash[1];
    } else {
        return false;
    }
}

var mailto = checkMailto(location.hash);

if(mailto){
    location.href = 'mailto:'+mailto;
    setTimeout(function(){
      window.close();
    }, 1000);
}
</script>
</html>

Results

Mail.app 设置为我的默认电子邮件阅读器:

当我单击该链接时,它会立即打开一个窗口,然后撰写一条空白消息。在浏览器中,它会返回到原始页面。

在“设置”>“高级”>“隐私”>“处理程序”下将 Gmail 设置为邮件阅读器:

当我单击该链接时,它会打开 Gmail 的新选项卡,而上一页安全地位于其自己的选项卡中。

注意:将 Gmail 设置为电子邮件处理程序后,在操作系统端(至少在 Mac 上),Chrome 将被设置为系统的电子邮件处理程序。因此,即使您关闭 Gmail 作为 Chrome 中的电子邮件处理程序,它仍然是在操作系统级别设置的。因此,为了重置它,我转到“邮件”>“首选项”>“常规”。并将默认邮件阅读器设置回邮件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何为将 Gmail 作为默认邮件处理程序的用户在新选项卡中打开 mailto 链接? 的相关文章

随机推荐