好的,我可以在 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 中的电子邮件处理程序,它仍然是在操作系统级别设置的。因此,为了重置它,我转到“邮件”>“首选项”>“常规”。并将默认邮件阅读器设置回邮件。