我有一个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的标签
有没有办法弄清楚内容脚本是否属于“隐藏”标签?
感谢, 彼得
答案 0 :(得分:1)
首先,您可以使用onCreated
和/或onUpdated
来跟踪制表符和网址映射,而无需内容脚本。
但是,如果您的内容脚本不仅仅是通知选项卡ID的后台页面,那么这可能意味着更多的检查。
如果您的内容脚本在all_frames
上运行,那么您将从顶部窗口和所有内部框架中的内容脚本中获取消息。不过,当我测试一个示例实现时,我会为所有这些实现获得相同的ID。此外,它们似乎都不是来自搜索结果列表中的条目。
如果您在所有标签中运行该脚本,则可以确保只有顶部窗口通过sendRequest
if (window.top === window)
{{1}}来打包邮件。
你是否有可能以另外的方式运行预览谷歌搜索结果?这可能会产生这种效果......