【问题标题】:Mailto links do nothing in Chrome but work in Firefox?Mailto 链接在 Chrome 中没有任何作用,但在 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 更一致

标签: html google-chrome


【解决方案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>
              

              【讨论】:

                猜你喜欢
                • 2016-07-01
                • 2019-11-29
                • 2013-10-13
                • 1970-01-01
                • 2017-12-08
                • 1970-01-01
                • 1970-01-01
                • 2016-02-19
                • 2022-01-23
                相关资源
                最近更新 更多