【问题标题】:How to open mailto link in Chrome with Window.open without creating a new tab?如何在不创建新标签的情况下使用 Window.open 在 Chrome 中打开 mailto 链接?
【发布时间】:2011-10-29 06:09:13
【问题描述】:

我正在创建一个 Google Chrome 扩展程序,并尝试使用 (window.open) 打开一个自定义 url 方案,而没有打开一个新的空白选项卡。为了争论,让我们试试 'mailto' url 方案。

我的代码:

window.open("mailto://Bob Lawblah", '_self');

不幸的是,即使我指定了“_self”,这也会打开一个新的空白选项卡并打开默认邮件程序。按照this的说法,我好像没有什么问题。

关于在打开“mailto”链接时如何不打开额外标签的任何想法?

【问题讨论】:

  • 明确一点:无论 URL 是什么,我仍然无法在当前选项卡中打开页面。示例:window.open("google.com", '_self');不响应。虽然如果我取出“_self”部分,它会在新标签页中打开窗口。

标签: javascript google-chrome google-chrome-extension browser-extension


【解决方案1】:

由于这是一个 chrome 扩展,对于 _self 和其他目标的含义有不同的参考框架。与其尝试使用 mailto,不如将它们发送到网站的“联系我”页面?

我认为这为最终用户提供了更轻松的可用性。老实说,我没有默认的邮件应用程序,即使我有 Outlook 或一些专用应用程序,我也不会使用它,因为 GMail 很棒(个人喜好,但我敢打赌我并不孤单)。例如,我使用扩展程序更改所有 mailto 链接以打开 GMail,以便我可以通过它向某人发送电子邮件。我的扩展程序不会修改您的扩展程序 javascript 或 mailto 链接(沙盒的一部分)。

通过“联系我”页面,您不仅可以隐藏您的电子邮件地址,还可以让人们按照您的条件(无附件等)与您联系。

【讨论】:

  • 感谢您的回复,但它不是我想打开的“mailto”网址。我已经在我的机器上注册了一个自定义 url 方案,并想打开它。 Mailto 只是一个例子。基本上它应该能够打开任何自定义 url(例如 myapp://something)。就像 iTunes 是这样的:(itms://urltoapp)
  • 啊。我很高兴看到更多的人在使用它。我会继续调查的。我已经尝试了很多东西......一个糟糕的替代方案是您打开一个加载自定义链接然后自行关闭的页面,但必须有更好的方法。
【解决方案2】:

由于您处于 Chrome 扩展上下文中,因此您应该使用 chrome.tabs API。如果你有一个额外的标签,你可以通过http://code.google.com/chrome/extensions/tabs.html#method-remove关闭它

【讨论】:

    猜你喜欢
    • 2016-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-13
    • 2014-05-05
    • 1970-01-01
    相关资源
    最近更新 更多