【发布时间】:2011-06-18 10:45:35
【问题描述】:
我正在为 Google Chrome 编写扩展程序。
当在目标站点上打开搜索页面时,会注入一个内容脚本,该脚本会向后台页面发送请求以在新选项卡中打开详细信息页面。当 detailPage 打开时,将注入一个内容脚本,该脚本向后台页面发送请求以在新选项卡中打开 messagePage。当 messagePage 打开时,会注入一个内容脚本,该脚本会发送一条消息并关闭 messagePage 选项卡。到现在为止还挺好。焦点返回到 detailPage 选项卡。
但是如何关闭detailPage呢? messagePage 中的脚本不见了。 detailPage 中的脚本处于空闲状态。我想背景必须关闭 detailPage 选项卡和 messagePage 选项卡。我尝试了两个连续的 chrome.tabs.remove 命令,但这段代码只是挂起:
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
if (request.cmd == "closeMessage") {
chrome.tabs.getSelected(null, function (tab) {
chrome.tabs.remove(tab.id);
chrome.tabs.getSelected(null, function (tab) {
chrome.tabs.remove(tab.id);
});
}
});
在我看来,这必须是收到“closeMessage”cmd 时操作的一部分。但是怎么做?如果没有,怎么办?
我了解发件人的 tab.id 作为 sender.tab.id 返回。我不能只访问它并使用它来关闭详细信息页面吗?
【问题讨论】:
-
弹出一条消息,要求用户按标签一角的小X。
标签: google-chrome google-chrome-extension