Google Chrome扩展程序操纵打开或当前标签的DOM

时间:2012-04-08 20:10:08

标签: javascript jquery google-chrome google-chrome-extension

好的,JavaScript / jQuery我得到了,我可以用它来做我想要的一般。然而,我目前正在尝试做的是使用开放/当前选项卡的DOM,我想知道这是否可能,或者是我所做的所有工作我的扩展仅限于html我提供了“背景”。 html“或同等的。

今天尝试在Google扩展程序中进行攻击我想在页面上拍摄图像并将它们存储在一个数组中,通过我想要添加到页面底部的栏创建一个幻灯片效果将其附加到打开/当前选项卡的现有DOM。然后,我想在DOM中“隐藏”元素直到条形图关闭。

所以我的第一个问题是,这样的事情是可能的,我可以用这种方式操纵DOM并从中读取。

1 个答案:

答案 0 :(得分:28)

Content Scripts是在页面和Chrome扩展程序之间的环境中运行的脚本。这些脚本在每次加载页面时加载,并且完全访问页面的DOM 。 DOM方法(例如document.getElementById())的行为就好像它们是页面的一部分一样。

全局window个对象(包括framesHTMLIFrameElement.contentWindow)是内容脚本无法直接读取的唯一对象。

内容脚本在每个页面上以defined in the manifest file运行。在"content_scripts"部分指定match pattern,以定义内容脚本必须运行的页面。同时将此模式添加到"permissions"部分,以解锁修改页面DOM的功能。

注意:这些脚本(例如a few of the chrome.* APIs)只能使用chrome.extension.sendRequestbackground page进行通信。

<小时/> 在background page中,页面的DOM无法直接访问。您可以使用chrome.extension.executeScript在任意选项卡中注入脚本,但是您将无法获得对元素的直接引用。为此,需要内容脚本。