Mailto链接在Chrome中什么都不做,但在Firefox中可以工作?


149

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

此处的简单示例:http : //jsfiddle.net/wAPNH/

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

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


对我来说效果很好,您是否有一些Chrome扩展程序或某些会干扰它们的文件?
瑞安·坎普

当您单击mailto链接时,哪个应用程序在FF中打开?
mohkhan

1
我在chrome 28中进行了尝试,并且JSfiddle链接对我来说效果很好(在Mac上运行,并且打开mail.app也很好)。
萨斯伯里

我发现mailto:test%40test.com操作更加一致
Pro Q

Answers:


128

这是特定于浏览器设置的,即,其行为将取决于用户的浏览器设置。用户可以mailto:通过访问chrome://settings/handlers或更改链接在chrome中的行为Chrome Settings->Content Settings->Manage Handlers...

如果该页面上未列出“电子邮件”,请参阅此答案以了解如何进行。


7
太好了,默认行为是什么?
Crashalot

8
我相信默认值是在计算机上运行邮件客户端。我知道在工作中,它将运行雷鸟;如果他们安装了Outlook,则可能会运行Outlook等。就个人而言,默认情况下它没有运行gmail,因此我必须以这种方式进行设置。
kennypu

2
@Crashalot不。mailto链接是mailto链接
kennypu 2013年

48
打开chrome:// settings / handlers会给我一个空框,没有添加处理程序的选项。Chrome似乎在这里严重损坏:它只是不会打开我配置的邮件程序(Thunderbird)来响应mailto链接。
彼得·弗林

3
@PeterFlynn,看来chrome现在会尝试运行计算机上安装的默认邮件客户端。确保将雷鸟设置为默认邮件客户端。有关如何操作的信息,请参见以下链接:kb.mozillazine.org/Default_mail_client#Windows
kennypu 2015年

107

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

在Chrome中设置mailto

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


1
这对我有用,无需先访问gmail并单击“允许gmail ...”,设置中就没有要更改的处理程序
chrismarx 2014年

1
Gmail?Gmail与这有什么关系?我希望Chrome打开Thunderbird,而不是打开Chrome的新实例。
彼得·弗林

转到chrome:// settings / handlers设置您的处理程序。
Rajesh Hegde

1
@ Gi1ber7您可以转到chrome:// settings / handlers更改mailto设置。
Rajesh Hegde

1
我那里没有处理程序。wth
Boris Gafurov

42

就我而言,chrome 在Windows 10中与MAILTO协议相关联。

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

MAILTO在列表中位于下方。此屏幕快照可能会有所帮助。

在此处输入图片说明


好的,但是如果我们希望它在特定网站而不是应用程序中打开怎么办?
凯尔·德莱尼

2
使用Windows 10,我必须在左侧列表中选择Outlook,然后才能在右侧列表中看到“ mailto”协议复选框。
汤姆·麦当劳

15

我也遇到了这个问题,最终将其归结为我的链接位于iframe中,并且我的Web应用程序使用https。因此,Chrome阻止了它(Chrome会在iframe之外打开其他mailto链接)。

mailto链接无法在框架镶边(通过https)中工作的情况下,kendsnyder提到只是更改

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

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

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


我很好奇使用target=_parent"是否也可以。好发现。
Termato 2015年

谢谢。很棒。@Termato,如果它是“顶部”框架,则可能会起作用。只需使用target="_top"或使用JavaScript,即可:window.top.location.href = 'mailto:...'
Neil Monroe

现在,目标=“_顶”也没有工作:(任何替代的解决方法我试过用“_parent”,它是不是工作压力太大。
维杰·米什拉

target="_top"在Google Chrome浏览器的iframe中为我工作
John Doherty

@Basj在我的(最新)Chrome上运行正常。您的计算机上是否有默认的邮件客户端?
Thomas Ayoub

13

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

1)前往gmail

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

3)享受

在此处输入图片说明


我看不到这样的东西
鲍里斯·加富罗夫

@BorisGafurov您的Chrome版本是最新的吗?
jj_

7

你可以试着去chrome://settings/handlers和设定值mailto:none代替gmail


7
此处相同:chrome 27没有为mailto定义的处理程序,或其他任何有关..wierd的处理程序,可能是chrome中新的安全默认设置。在FF中,我也必须手动添加它。
罗伯特·霍夫曼

同样在这里。Chrome基本上已损坏wrt mailto链接
Peter Flynn

6

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

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

参见redfish43的回复,总结一下

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

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

如有必要,请将javascript:再次添加到最前面,因为在您粘贴时,Chrome可能会修剪冒号之前和之后的所有内容。然后按回车。

打开弹出窗口后,单击“允许”


那Outlook.com呢?
凯尔·德莱尼


2

我在对我有用的Google论坛上找到了这个答案。在脚注中提到“ 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的,现在已经停产了。我尝试在网上搜索一种下载方式,但很奇怪的是,它似乎只为企业保留,并且没有从网络上下载的链接,因为每个使用Google Updater进行流式传输的人都可以。无论如何,祝你好运!


1

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

当然,这将不会利用开箱即用的“ mailto”功能。这完全取决于您要遵循的可用性要求。对我自己来说很不幸-默认情况下,所有人都必须可以使用mailto,而不会给客户带来“不便”。

最终您的决定。


1

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

如果您曾经在Gmail上单击过该通知,该通知允许在Gmail而非您的App中打开链接- 并且在重置Chrome处理程序之后,您必须在Mail.app设置中手动进行编辑。

屏幕截图


0

通常<a href="mailto:hi@hi.com"></a>应该可以,但是请记住您必须在计算机上设置默认电子邮件程序。例如,我使用的是Ubuntu 14.04,默认电子邮件为thunderbird,效果很好。


0

“使用Chrome浏览器,招来麻烦”-匿名。(仅供参考)

嗯,Chrome以许多默认的启用安全性的实用程序而闻名,这就是问题的根源。

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


1
是的,这是最常见的原因之一。并且,建议的解决方案当然应该有效。

0

我使用以下代码解决了问题:

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

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

它像魅力一样对我有效!


-3

您也可以这样使用

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

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

谢谢..


中的“ 0”,而不是“ o” void()。这对我来说似乎不太好用。还有什么需要补充的吗?
罗布

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.