在从特定选项卡打开的所有新选项卡中插入内容脚本

时间:2016-04-27 06:41:20

标签: javascript google-chrome google-chrome-extension content-script

我正在构建一个Record / Playback chrome扩展程序,用户可以单击浏览器操作来开始记录他的操作。这会将内容脚本插入当前活动选项卡,并开始将操作发送到后台脚本。具有挑战性的部分是当用户单击打开新窗口/选项卡和脚本的链接时,background.js会跟踪使用chrome.tabs.onCreated.addListener创建的新选项卡,并将内容脚本插入到新创建的选项卡中如果其Opener Tab ID, openerTabId与起始标签的ID相同。

整个方法对我来说似乎有点笨拙。这是最好的方式吗?

2 个答案:

答案 0 :(得分:1)

Programmatic injection讨论了当您的JavaScript或CSS代码不应被注入到与模式匹配的每个页面时,以编程方式将代码插入页面非常有用 - 例如,如果您希望脚本运行仅当用户点击浏览器操作的图标时才会显示。

要将代码插入页面,您的扩展程序必须具有该页面的跨域权限。它还必须能够使用chrome.tabs模块。设置权限后,可以通过调用tabs.executeScript将JavaScript注入页面。并且如上所述,不是直接插入代码,而是通常通过将代码放在如下文件中来完成:

chrome.tabs.executeScript(null, {file: "content_script.js"});

除此之外,这个SO帖子 - Chrome extension: create tab then inject content script into it可能有所帮助。 :)

答案 1 :(得分:1)

我认为你应该将content_script.js添加到  并使用

检查该选项卡是否为新选项卡
if(history.length == 1){
    // TODO: something
}
相关问题