javascript - 如何打开一个mailto : link from a Chrome Extension?

标签 javascript google-chrome google-chrome-extension

我有一个名为 Shrtr 的 URL 缩短 Chrome 扩展程序.现在,它允许用户将缩短的 URL 复制到剪贴板,但在下一个版本中,我添加了通过电子邮件发送缩短的 URL 的功能,使用 mailto:链接(即 mailto:?subject=<original page title>&body=<short URL> )。

问题是,你不能只分配 document.location.href = 'mailto...';从扩展。以下 2 种方法对我有用,但是对于这两种方法,我最终都会在浏览器中打开一个空白选项卡:

方法一:window.open

var wnd = window.open(emailUrl);
setTimeOut(function() {
    wnd.close();
}, 500);

注意在关闭窗口之前需要等待。这有效(即邮件客户端新消息对话框出现,预填充),但新选项卡保持打开状态。

方法二:使用chrome.tabs

chrome.tabs.create({ url: emailUrl }, function(tab) {
    setTimeOut(function() {
        chrome.tabs.remove(tab.id);
    }, 500);
});

再次,有效 - 但选项卡保持打开状态。有什么想法吗?

最佳答案

var emailUrl = "mailto:blah@blah.com";

    chrome.tabs.update({
        url: emailUrl
    });

关于javascript - 如何打开一个mailto : link from a Chrome Extension?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21792565/

相关文章:

javascript - CKEditor:如何在不更改源代码的情况下更改编辑器行为?

node.js - 对 JavaScript 文件的更改不会立即生效。 gulp browserify 任务可能存在问题

javascript - Chrome 打包应用程序可以检查其自己的包内容

google-chrome - 源 map 可用于Chrome扩展程序吗?

javascript - Chrome 扩展 : Unsafe JavaScript attempt to access frame with URL Domains, 协议(protocol)和端口必须匹配

javascript - 如何使用 Javascript 从弹出窗口本身的源页面执行在 html 弹出窗口中实时创建/打印的 function() ?

javascript - Twitter Bootstrap 弹出窗口在打开新窗口时关闭

javascript - "rollup-plugin-svelte"以下包没有导出它们的 `package.json`

firefox - Webkit 检查器(开发人员工具)是否适合替代 Firebug?

css - 比较 Chrome 和 Firefox 的字体大小问题