首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何打开邮件:链接从一个Chrome扩展?

如何打开邮件:链接从一个Chrome扩展?
EN

Stack Overflow用户
提问于 2014-02-15 02:16:36
回答 4查看 4.9K关注 0票数 9

我有一个网址缩短Chrome扩展名为史泰尔。现在,它允许用户将缩短的URL复制到剪贴板上,但是在下一个版本中,我增加了使用mailto:链接(即mailto:?subject=<original page title>&body=<short URL>)发送缩短URL的能力。

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

window.open 方法1:

代码语言:javascript
运行
复制
var wnd = window.open(emailUrl);
setTimeOut(function() {
    wnd.close();
}, 500);

注意在关闭窗口之前需要等待。这是可行的(即出现邮件客户端新消息对话框,预先填充),但新选项卡仍处于打开状态。

方法2:使用

代码语言:javascript
运行
复制
chrome.tabs.create({ url: emailUrl }, function(tab) {
    setTimeOut(function() {
        chrome.tabs.remove(tab.id);
    }, 500);
});

再次,工作-但选项卡仍然打开。有什么想法吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-12-18 20:01:53

我意识到这是一个老问题,但我自己也有同样的问题,我想如何解决这个问题,所以我想我会分享。

这个问题源于这样一个事实:(我相信)您正在从扩展弹出页面调用以下代码。

代码语言:javascript
运行
复制
chrome.tabs.create({ url: emailUrl }, function(tab) {
    setTimeout(function() {
        chrome.tabs.remove(tab.id);
    }, 500);
});

问题在于,一旦创建了一个新的选项卡,弹出页面就会消失,回调代码永远不会执行。

我们可以通过将该代码移动到后台页面中的函数(其生存期不与弹出页绑定)来纠正这一问题:

代码语言:javascript
运行
复制
function sendEmail() {
    var emailUrl = "mailto:blah@blah.com";
    chrome.tabs.create({ url: emailUrl }, function(tab) {
        setTimeout(function() {
            chrome.tabs.remove(tab.id);
        }, 500);
    });
}

并通过chrome.extension.getBackgroundPage().sendEmail()从弹出页面调用它。

使用上述方法,将打开默认的电子邮件客户端,新选项卡将在500毫秒后自动关闭。

票数 6
EN

Stack Overflow用户

发布于 2016-12-18 05:23:42

代码语言:javascript
运行
复制
var emailUrl = "mailto:blah@blah.com";

    chrome.tabs.update({
        url: emailUrl
    });
票数 7
EN

Stack Overflow用户

发布于 2014-02-15 05:01:09

你不需要这样一份严密的声明吗

代码语言:javascript
运行
复制
<a href="javascript:window.open('','_self').close();">close</a>

学分归丹尼尔如何关闭浏览器窗口中的当前选项卡?

甚至像这样的东西

代码语言:javascript
运行
复制
//keep a handle to the window you open.

var newWin = window.open('my window', 'http://.../');

...
//some point later in the code
newWin.close();

学分归Tracker1 Javascript代码关闭在IE,Firefox和Chrome中工作的选项卡?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21792565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档