gpt4 book ai didi

javascript - 带有 declarativeContent.RequestContentScript 的 Chrome 扩展

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:58:29 25 4
gpt4 key购买 nike

我正在尝试制作一个 Chrome 扩展程序,它将监视 GMail 并在用户开始写邮件时执行某些操作。在对示例和文档进行一些研究之后,我发现我应该使用 declarativeContent 来完成它,它会对页面更改使用react。

这就是我现在所做的。

list .json:

{
"manifest_version": 2,
"name": "Gmail helper",
"version": "0.1",
"permissions": [ "declarativeContent" ],
"background": {
"scripts": ["background.js"],
"persistent": false
}
}

背景.js:

chrome.runtime.onInstalled.addListener (function (details) {
chrome.declarativeContent.onPageChanged.removeRules (undefined, function () {
chrome.declarativeContent.onPageChanged.addRules ([{
conditions: [
new chrome.declarativeContent.PageStateMatcher({
pageUrl: { hostEquals: 'mail.google.com', schemes: ['https'] },
css: ["div"]
// css: ["div[aria-label='Message Body']"]
})
],
actions: [ new chrome.declarativeContent.RequestContentScript({js: ["content.js"]}) ]
}]);
});
});

content.js:

alert ("Test");

我的计划是声明一个内容脚本,该脚本将触发 GMail 中的页面更改。我添加了一个声明性规则,其中定义了 pageURL、css 和操作。根据我的理解,当 pageUrl 和 css 内容匹配时,应该执行 content.js。但是,不会执行 content.js。

我做错了什么?

谢谢。

最佳答案

在站点上运行内容脚本需要站点的权限,这在 declarativeContent API 的文档中没有明确说明,但由于缺少“可以在没有主机权限的情况下使用此操作”注释而推断出来,这是出现在其他 Action 中。 declarativeContent API 的目的是在没有任何权限确认警告的情况下从 WebStore 安装扩展,因此除非您在 list 中明确添加它,否则此 API 自然无法授予您访问 mail.google.com 的权限:

"permissions": ["declarativeContent", "https://mail.google.com/"]

关于javascript - 带有 declarativeContent.RequestContentScript 的 Chrome 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46196547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com