好的,JavaScript/jQuery 我明白了,我可以用它来做我想做的事情。然而,我目前正在尝试做的是使用打开/当前选项卡的 DOM,我想知道这是否可能,或者我使用扩展名所做的所有工作都仅限于我为它提供“背景”的 html。 html"或等效文件。
对于今天对谷歌扩展程序进行罢工的尝试,我想在页面上拍摄图像并将它们存储在数组中,以通过我想添加到页面底部的栏从中创建类似幻灯片的效果将其附加到打开/当前选项卡的现有 DOM。然后我想在 DOM 中“隐藏”元素,直到栏关闭。
所以我的第一个问题是,这样的事情是否可能,我能否以这种方式操作 DOM 并从中读取。
最佳答案
Content Scripts是在页面和 Chrome 扩展程序之间的环境中运行的脚本。这些脚本会在每次页面加载时加载,并且可以完全访问页面的 DOM。 DOM 方法,例如 document.getElementById()
的行为就好像它们是页面的一部分一样。
全局 window
对象(包括 frames
和 HTMLIFrameElement.contentWindow
)是唯一不能被内容脚本直接读取的对象。
内容脚本在每个页面上运行为 defined in the manifest file .指定 match pattern在 "content_scripts"
部分,定义内容脚本必须在哪些页面上运行。还将此模式添加到 “权限”
部分,以解锁修改页面 DOM 的能力。
注意:只有a few of the chrome.*
APIs , 可以被这些脚本使用(例如 chrome.extension.sendRequest
与 background page 通信)。
在 background page ,页面的 DOM 不可直接访问。您可以使用
chrome.extension.executeScript
在任意选项卡中注入(inject)脚本,但您将无法获得对元素的直接引用。为此,需要内容脚本。
关于javascript - Google Chrome 扩展操作打开或当前选项卡的 DOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10066100/