17

好的,JavaScript/jQuery 我明白了,我可以用它来做我想做的事情。然而,我目前正在尝试做的是使用打开/当前选项卡的 DOM,我想知道这是否可能,或者我所做的所有工作都仅限于我为它提供“背景”的 html 的扩展名。 html”或等效的。

对于今天尝试对谷歌扩展进行罢工的尝试,我想在页面上拍摄图像并将它们存储在一个数组中,以通过我想添加到页面底部的栏来创建类似幻灯片的效果,并将其附加到打开/当前选项卡的现有 DOM。然后我想在 DOM 中“隐藏”元素,直到栏关闭。

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

4

1 回答 1

34

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

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

内容脚本在清单文件中定义的每个页面上运行。在该部分指定匹配模式"content_scripts",以定义内容脚本必须在哪些页面上运行。还要将此模式添加到该"permissions"部分,以解锁修改页面 DOM 的能力。

注意:只有少数chrome.*API可以被这些脚本使用(例如chrome.extension.sendRequest后台页面通信)。


后台页面中,页面的 DOM 不能直接访问。您可以使用 将脚本注入任意选项卡chrome.extension.executeScript,但无法直接引用元素。为此,需要内容脚本。

于 2012-04-08T20:51:46.863 回答