0

我正在尝试使用可选权限动态获得对某些站点(例如 amazon.fr)的权限,一旦获得权限,我将使用声明性内容 API 的 RequestContentScript函数将一些 JS 注入到我请求权限的站点中。

在我关闭浏览器或关闭最初注入脚本的所有页面之前,所有这些都是第一次正常工作。但是页面注入后 JS 并没有注入那些站点。当我检查扩展程序的权限和站点时,我看到我请求的所有权限仍然通过获取权限 API 存在。

我用来请求权限和注入脚本的后台js代码如下

const conditions = [];
chrome.permissions.request({
  permissions: ['declarativeContent'],
  origins:['https://www.amazon.fr/'],
}, (granted) => {
  console.log({ granted });
  if (granted) {
     conditions.push(new chrome.declarativeContent.PageStateMatcher({
        pageUrl: { hostEquals: 'www.amazon.fr', schemes: ['https'] },
        css: ['div'],
      }));
    const rule2 = {
          conditions,
          actions: [
         new chrome.declarativeContent.RequestContentScript({ 
         js: ['page_injects/index.js'], 
         css: ['page_injects/index.css'] })],
    };
chrome.declarativeContent.onPageChanged.removeRules(undefined,() => {
           chrome.declarativeContent.onPageChanged.addRules([rule2]);
         });
    console.log('chrome.declarativeContent.onPageChanged.addRules done');
  }
});


由于这是第一次工作,我不确定第二次及之后出现相同行为会出现什么问题。

有关如何进行此操作的任何提示?

我使用这个SO question 来选择注入脚本。

4

0 回答 0