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

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

<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行),它将打开选项卡并完美运行脚本。我正在尝试获取语法,以便在执行后自动关闭选项卡。

谢谢!

最佳答案

不确定要执行的操作,但是如果要在脚本运行后关闭选项卡,则应让脚本使用chrome.extension.sendRequest向background.html发送“ Close Me”请求。

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

08-25 12:37
查看更多