【问题标题】:mailto link not working in chrome extension popupmailto 链接在 chrome 扩展弹出窗口中不起作用
【发布时间】:2011-03-13 06:28:54
【问题描述】:

这个问题让我抓狂了 2 天。我做了一个简单的 chrome 扩展,它调用一个服务器端程序,该程序返回 HTML,然后我将其填充到弹出窗口中的 div 中。一切都很好,除了包含“mailto:xxx@yyy.com”href 的简单锚链接。不会弹出电子邮件消息撰写窗口。

解决方法:添加 target="_blank" 属性

我想知道为什么这是必要的。

【问题讨论】:

  • 如果您正在做 chrome 扩展,请查看 area51.stackexchange.com/proposals/10910/…
  • 这对我有帮助,但我发现更好的解决方法是使用隐藏的 iframe,而不是打开新的窗口/标签。
  • @JeremyLawson 我发现如果您在扩展弹出窗口中有很多 mailto: 链接,则执行 iFrame 技巧只能工作一次,随后单击相同或其他 mailto: 链接将不再起作用.. .

标签: html google-chrome google-chrome-extension


【解决方案1】:

这可能与在浏览器的不同处理器中运行的扩展有关,因此需要一个目标属性,以便可以打开一个新的选项卡/窗口......有些网站在显示时不起作用出于这个原因,在扩展弹出窗口中,因为扩展框架不会导航到某些页面...

【讨论】:

    【解决方案2】:

    我知道这是一个老问题,但我遇到了类似的情况。我必须发送一封电子邮件,但我必须使用按钮而不是链接来完成,并且不得不解决这个问题:

    function sendEmail(){
        var mail = 'mailto:xxx@yyy.com?subject=Subject&body=Body';
        var newWin = window.open(mail);
        setTimeout(function(){newWin.close()}, 100);
    }
    

    这并不理想,因为它会打开一个用户可见的新窗口,而不是立即执行。事实上,我的第一次尝试是这样(在 HTML 文件中有效,但在我的扩展中无效):

    function sendEmail(){
        var mail = 'mailto:xxx@yyy.com?subject=Subject&body=Body';
        window.open(mail).close();
    }
    

    不知道为什么添加计时器使它在这种情况下工作,而不是像在常规 HTML 文件中那样工作,但这对我有用,所以我想我会分享。

    【讨论】:

      猜你喜欢
      • 2011-12-22
      • 1970-01-01
      • 1970-01-01
      • 2016-07-18
      • 2011-10-14
      • 1970-01-01
      • 1970-01-01
      • 2017-12-29
      • 2012-10-09
      相关资源
      最近更新 更多