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/handlers
或Chrome Settings->Content Settings->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 文件。我相信我是通过他们网站上的免费 GooglePack 获得的,该网站现已停产。我尝试在网上搜索下载它的方法,但奇怪的是,它似乎现在只为企业保留,并且网上没有可用的下载链接,因为拥有它的每个人都使用谷歌更新程序流式传输它......奇怪。总之祝你好运!
【讨论】:
【参考方案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】:通常的<a href="mailto:hi@hi.com"></a>
应该可以工作,但请记住,您必须在计算机上设置默认电子邮件程序。例如,我使用的是 Ubuntu 14.04,默认电子邮件是 Thunderbird,它工作正常。
【讨论】:
【参考方案14】:在 macOS 上还要检查 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 连接