繁体   English   中英

使 chrome 扩展仅在某些站点上工作(清单 v3)

[英]Make chrome extension work only on certain sites (manifest v3)

我在升级到 manifest v3 时遇到了一些麻烦,非常感谢您的帮助和意见。

背景:

  • 使用清单 v3
  • 使用 ShowAction() 而不是已弃用的 ShowPageAction()
  • 用于使用 manifest v2 和 ShowPageAction()
  • 已经阅读了这篇不适用于 manifest v3 的帖子(或者似乎它不适用)
  • 还按照这个谷歌指南从 ShowPageAction 升级到 ShowAction

在遵循 chrome 的教程之后,该教程在下面重新发布:

    // background.js

    // Wrap in an onInstalled callback in order to avoid unnecessary work
    // every time the background script is run
    chrome.runtime.onInstalled.addListener(() => {
      // Page actions are disabled by default and enabled on select tabs
      chrome.action.disable();
    
      // Clear all rules to ensure only our expected rules are set
      chrome.declarativeContent.onPageChanged.removeRules(undefined, () => {
        // Declare a rule to enable the action on example.com pages
        let exampleRule = {
          conditions: [
            new chrome.declarativeContent.PageStateMatcher({
              pageUrl: {hostSuffix: '.example.com'},
            })
          ],
          actions: [new chrome.declarativeContent.ShowAction()],
        };
    
        // Finally, apply our new array of rules
        let rules = [exampleRule];
        chrome.declarativeContent.onPageChanged.addRules(rules);
      });
    });

我注意到我的扩展灰色图标在与指定模式不匹配的网站上显示,并且在与 url 模式匹配的网站上显示颜色(预期行为)。 但是,当我在与 url 模式匹配的站点上单击扩展时,该扩展仍然处于禁用状态。

问题:有没有人能够让这个示例代码工作? 仅当用户在特定站点上并单击了扩展程序时,如何才能使 chrome 扩展程序起作用?

提前致谢!

您只需在 manifest.json 权限中添加“declarativeContent”即可。

 "permissions": [
     "declarativeContent"
],

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM