Google Chrome扩展程序中的隐藏标签

时间:2011-11-11 11:37:14

标签: google-chrome-extension

我有一个chrome扩展程序,它将内容脚本中的消息发送到后台页面,并记录内容脚本的tab_id。 我注意到在google.com | de |上记录了两条消息,因此创建了两个内容脚本:一个用于选项卡中显示的实际网页(例如https://www.google.com/search?q=python+standard+library),另一个用于第一个项目的内容脚本谷歌结果列表(在上面的示例中为http://docs.python.org/library/

更奇怪的是 - 第二个内容脚本(隐藏的脚本)的tab_id无效。即chrome.pageAction.hide(tab_id)导致出现以下错误:

pageAction.hide期间出错:没有标识为71的标签

有没有办法弄清楚内容脚本是否属于“隐藏”标签?

感谢,  彼得

1 个答案:

答案 0 :(得分:1)

首先,您可以使用onCreated和/或onUpdated来跟踪制表符和网址映射,而无需内容脚本。

但是,如果您的内容脚本不仅仅是通知选项卡ID的后台页面,那么这可能意味着更多的检查。

如果您的内容脚本在all_frames上运行,那么您将从顶部窗口和所有内部框架中的内容脚本中获取消息。不过,当我测试一个示例实现时,我会为所有这些实现获得相同的ID。此外,它们似乎都不是来自搜索结果列表中的条目。

如果您在所有标签中运行该脚本,则可以确保只有顶部窗口通过sendRequest if (window.top === window) {{1}}来打包邮件。

你是否有可能以另外的方式运行预览谷歌搜索结果?这可能会产生这种效果......