首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google Chrome扩展-自动创建和删除选项卡

Google Chrome扩展-自动创建和删除选项卡
EN

Stack Overflow用户
提问于 2010-06-25 02:46:56
回答 3查看 7.1K关注 0票数 1

我正在创建一个扩展,将启动一个外部脚本的基础上突出显示的文本。到目前为止,这个脚本是有效的,除了我在关闭新创建的窗口时遇到了问题。

在我的background.html中,我有以下内容:

代码语言:javascript
复制
<script>
function executeScript(selection) {
  var queryText = 'script:' + selectedText;
  chrome.tabs.create({url: queryText});
  chrome.tabs.getSelected(null, function(tab) {
    chrome.tabs.remove(tab.id);
  });
}
</script>

我的问题是上面的设置,它在"url“加载之前关闭了标签,所以它永远不会执行脚本。

如果我删除getSelected行(第5-7行),它将打开选项卡并完美地运行脚本。我正在尝试获取在选项卡执行后自动关闭选项卡的语法。

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-06-25 03:32:16

我不太清楚你想要完成什么,但是如果你想在脚本运行后关闭一个标签,你应该让脚本使用chrome.extension.sendRequest向background.html发送一个"Close Me“请求。

您最好使用chrome.tabs.executeScript,它允许您传递一个函数(您可以在其中关闭选项卡),该函数在脚本运行完成后被调用。

票数 1
EN

Stack Overflow用户

发布于 2011-02-09 23:17:30

我想发布一个关于这个问题的后续问题:

我想做一个Chrome扩展,它将给定Tab的URL (最终是一个选定的文本)传递给我的程序(在OS X中)。

问题是,Chrome在打开标签页后会立即将其关闭,而不会真正加载URL。实现这一点的唯一方法是插入alert-command,这是不可行的。

我也试过了

chrome.tabs.onCreated.addListener

但这是相同的结果,setTimeout似乎根本没有注册。

我的代码:

警告函数{ chrome.tabs.create({url:"myApp:add?url="+encodeURIComponent(tab.url)},chrome.browserAction.onClicked.addListener(function(tab) (

){myApp(“您的网址已添加到myApp");chrome.tabs.remove(tab.id);});});

我需要完全相同的结果,只是没有警告框...谢谢你的帮助!

票数 1
EN

Stack Overflow用户

发布于 2013-08-22 21:37:40

这对我很有效:

代码语言:javascript
复制
chrome.tabs.create({ url: yourUrl },function(tab){
                                                setTimeout(function(){chrome.tabs.remove(tab.id);}, 200);
                                    });
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3112986

复制
相关文章

相似问题

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