Mailto 链接在 Chrome 中没有任何作用,但在 Firefox 中有效?

Posted

技术标签:

【中文标题】Mailto 链接在 Chrome 中没有任何作用,但在 Firefox 中有效?【英文标题】:Mailto links do nothing in Chrome but work in Firefox? 【发布时间】:2013-07-05 06:02:48 【问题描述】:

我们嵌入网站的mailto 链接似乎无法在 Chrome 中执行任何操作,尽管它们在 Firefox 中有效。

这里的简单示例:http://jsfiddle.net/wAPNH/

<a href='mailto:test@test.com'>hi this is a test</a>

我们需要做一些特别的事情来在 Chrome 中启用邮件链接吗?

【问题讨论】:

对我来说很好用,你有一些 Chrome 扩展程序或会干扰的东西吗? 当您点击 mailto 链接时,在 FF 中打开了哪个应用程序? 我在 chrome 28 中尝试过,并且 JSfiddle 链接对我来说效果很好(在 Mac 上运行,并且打开 mail.app 就好了)。 我发现mailto:test%40test.com 更一致 【参考方案1】:

您可以尝试转到chrome://settings/handlers 并将mailto: 的值设置为none 而不是gmail

【讨论】:

此处相同:chrome 27 没有定义 mailto 的处理程序或其他任何与此相关的处理程序 ..wierd,也许是 chrome 中的新安全默认值。在 FF 中,我也必须手动添加它。 这里也一样。 Chrome 基本上已损坏 wrt 邮件链接【参考方案2】:

这是特定于浏览器设置的,即它的行为会根据用户的浏览器设置而有所不同。用户可以通过访问chrome://settings/handlersChrome Settings-&gt;Content Settings-&gt;Manage Handlers... 来更改mailto: 链接在chrome 中的行为方式

如果该页面上未列出“电子邮件”,请参阅this answer 了解如何继续。

【讨论】:

很好,默认行为是什么? 我相信默认是在电脑上运行邮件客户端。我知道在工作中,它会运行雷鸟;如果他们安装了 Outlook,它可能会运行 Outlook 等。就我个人而言,它默认不运行 gmail,我必须这样设置。 @Crashalot 不。 mailto 链接是 mailto 链接 打开 chrome://settings/handlers 给了我一个空框,没有添加处理程序的选项。看起来 Chrome 在这里严重损坏:它根本不会打开我配置的邮件 (Thunderbird) 以响应 mailto 链接。 @PeterFlynn 现在看起来 chrome 会尝试运行计算机上安装的默认邮件客户端。确保将 Thunderbird 设置为默认邮件客户端。请参阅此链接了解如何执行此操作:kb.mozillazine.org/Default_mail_client#Windows【参考方案3】:

这是因为 chrome 以不同的方式处理 mailto。您可以转到chrome://settings/handlers 并确保这是默认处理程序。在您的情况下,它将是无(即未列出)。现在去 gmail.com。当您单击书签按钮旁边的按钮时,您应该会看到类似的内容。

如果您希望通过 gmail 打开所有电子邮件链接,请设置“使用 Gmail”。现在当你点击 mailto 按钮时,chrome 会自动在 gmail 中打开。

【讨论】:

这对我有用,没有先访问 gmail 并单击“允许 gmail ...”,设置中没有要更改的处理程序- Gmail? Gmail 与此有什么关系?我希望 Chrome 打开 Thunderbird,而不是打开一个新的 Chrome 实例。 这个解决方案让我走上了正轨。但是,如果我不想使用 gmail,如何更改为其他选项? @Gi1ber7 您可以转到 chrome://settings/handlers 更改 mailto 设置。 我那里没有处理程序。与【参考方案4】:

另一种解决方案是实现您自己的自定义弹出/表单/用户控件,该控件将在所有浏览器中通用。

当然,这不会利用“mailto”开箱即用的功能。这完全取决于您所针对的可用性遵从性。对我自己来说不幸的是 - 默认情况下,每个人都可以使用 mailto,而不会“给客户带来不便”。

您的最终决定。

【讨论】:

【参考方案5】:

请检查:

这适用于 chrome 和所有浏览器。

<a href="mailto:test.test@gmail.com">Test</a>

尝试并努力工作。

【讨论】:

【参考方案6】:

你也可以这样使用,

<a href="javascript:void(0);" onclick="javascript:window.location.href='mailto:info@example.com'; return false;">info@example.com</a>

我认为这是解决 chrome 问题的最佳方法。

谢谢..

【讨论】:

'0',而不是 void() 中的 'o'。这对我来说似乎效果不佳。还有什么需要补充的吗?【参考方案7】:

我也遇到了这个问题,最终追查到我的链接在 iframe 中,而我的网络应用使用 https。由于这个原因,Chrome 阻止了它(Chrome 会在 iframe 之外打开其他 mailto 链接)。

mailto link not working within a frame chrome (over https)中,kendsnyder 提到了简单的改变

<a href="mailto:...">email</a>

<a target="_top" href="mailto:...">email</a>

瞧,问题解决了。该 mailto 链接现在适用于所有浏览器。

【讨论】:

我很好奇使用target=_parent" 是否也可以。很好的发现。 谢谢。工作得很好。 @Termato,如果它是“顶部”框架,它可能会起作用。只需使用 target="_top" 或者如果使用 JavaScript:window.top.location.href = 'mailto:...' 现在 target="_top" 也不起作用 :( 任何替代解决方法。我尝试使用“_parent”,但它也不起作用。 target="_top" 在 Google Chrome 的 iframe 中为我工作 @Basj 在我的(最新)Chrome 上运行良好。您的计算机上有默认邮件客户端吗?【参考方案8】:

我在一个对我有用的谷歌论坛上找到了这个答案。在脚注中它提到了“googleapps.exe”——我没有这个,它仍然有效。只需按照以下说明操作,但在更改注册表之前关闭所有应用程序。我还保存了现有值以防万一它不起作用。


只需在搜索栏中输入“运行”,然后输入“regedit”,然后前往:

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mailto\shell\open\command\ 

编辑(双击)“(默认)”为:

"C:\Program Files (x86)\Google\Google Apps\googleapps.exe" --domain= --mailto.google.com="%1" 

就是这样!保存并关闭它,它应该可以正常工作!

使用此方法可让您不必下载 GMail 通知程序,对于我们这些使用 GTalk 的人来说不需要,因为它会为我们完成。我不确定为什么 Google 不能轻松解决这个问题。我听说 Google Apps 尚未在 Windows 7 上进行全面测试,但很明显相同的标签适用于它。

注意:此解决方案的唯一要求是您的计算机上需要有 googleapps.exe 文件。我相信我是通过他们网站上的免费 G​​ooglePack 获得的,该网站现已停产。我尝试在网上搜索下载它的方法,但奇怪的是,它似乎现在只为企业保留,并且网上没有可用的下载链接,因为拥有它的每个人都使用谷歌更新程序流式传输它......奇怪。总之祝你好运!

【讨论】:

【参考方案9】:

我遇到了同样的问题。这个问题,由于某种奇怪的原因,Chrome 将自己变成了打开 mailto: 链接的默认工具。解决方案,将您的邮件客户端作为默认应用程序打开它。如何:http://windows.microsoft.com/en-nz/windows/change-default-programs#1TC=windows-7

祝你好运

【讨论】:

谢谢,这很有帮助,在我到达这里之前,我不得不尝试所有排名更高的东西,但都失败了:(。【参考方案10】:

在我的例子中,chrome 在 Windows 10 中与 MAILTO 协议相关联。

我使用“默认程序” -> “将文件类型或协议与程序关联”更改了与 Outlook 的关联。

MAILTO 在列表的下方。此屏幕截图可能会有所帮助。

【讨论】:

好的,但是如果我们希望它在特定网站而不是应用中打开呢? 使用 Windows 10,我必须先在左侧列表中选择 Outlook,然后才能在右侧列表中看到“mailto”协议复选框。【参考方案11】:

由于我的协议处理程序为空而对我有用的修复

https://productforums.google.com/forum/#!topic/gmail/CQMCGRvyhCM

看redfish43的回复,总结一下

对于邮寄: - 确保您已登录 Gmail,并且活动窗口是您的 Gmail 主页面(否则不会发生任何事情)。 - 复制/粘贴到地址栏:

javascript:navigator.registerProtocolHandler("mailto","https://mail.google.com/mail/?extsrc=mailto&url=%s","Gmail")

如果需要,请再次将 javascript: 添加到前面,因为当您粘贴它时,Chrome 可能会修剪掉包括冒号在内的所有内容。然后回车。

当弹出窗口打开时,点击“允许”

【讨论】:

outlook.com 怎么样?【参考方案12】:

您需要允许 gmail 安装 mailto 协议的服务处理程序:

1) 转到 gmail

2) 点击地址栏末尾的小菱形图标(截图)

3) 享受

【讨论】:

我看不到这样的事情 @BorisGafurov 你的 Chrome 版本是最新的吗?【参考方案13】:

通常的&lt;a href="mailto:hi@hi.com"&gt;&lt;/a&gt; 应该可以工作,但请记住,您必须在计算机上设置默认电子邮件程序。例如,我使用的是 Ubuntu 14.04,默认电子邮件是 Thunderbird,它工作正常。

【讨论】:

【参考方案14】:

ma​​cOS 上还要检查 Mail.app 设置,该应用程序被选为默认电子邮件应用程序/与mailto: 链接关联:

如果您曾经在 Gmail 上点击过该通知,该通知允许在 Gmail 中打开链接而不是您的应用程序 - 然后重置 Chrome 处理程序,您必须在 Mail.app 设置中手动编辑它.

【讨论】:

【参考方案15】:

'使用 Chrome,惹麻烦' - 匿名。 (只是一个象征性的参考)

嗯,Chrome 以许多默认启用安全功能的实用程序而闻名,而这正是您的问题所在。

但是,可以通过“设置默认电子邮件客户端”(因为未设置默认电子邮件客户端)或在“chrome://settings/handlers”下设置默认处理程序(默认情况下,它是设置为“忽略”)。

【讨论】:

是的,这是最常见的原因之一。而且,建议的解决方案肯定会奏效。【参考方案16】:

我用这段代码解决了这个问题:

    
<button onclick="email()">Contact me !</button>	

<script>
function email() 
    var str = window.open('mailto:aaaaaa@aaaaaa.net', '_blank');

</script>

它对我来说就像一个魅力!

【讨论】:

【参考方案17】:

我也遇到了同样的问题。创建一个函数解决了这个问题:

<script>
    function sendEmail()        
        window.location = "mailto:test@test.com";
    
</script>

<a onclick="sendEmail();">hi this is a test</a>

【讨论】:

以上是关于Mailto 链接在 Chrome 中没有任何作用,但在 Firefox 中有效?的主要内容,如果未能解决你的问题,请参考以下文章

Chrome - 点击 mailto: 链接关闭 websocket 连接

有没有办法从服务人员打开 mailto: 和 tel: 链接?

QWebView mailto 问题

PWA 上的特殊链接(电话:、邮件:、短信:)

mailto:UIWebView 中的链接 - 不起作用

mailto crontab 不起作用