当前位置: 首页 > 面试题库 >

Chrome扩展清单“匹配”

燕扬
2023-03-14
问题内容

我正在尝试使用简单的Chrome扩展程序,但是在为matches数组提供值时遇到了问题content_scripts

{
  "name": "My Extension",
  "version": "1.0",
  "description": "My Extension Experiment",
  "browser_action": {
    "default_icon": "icon.png",
    "default_title": "Ext",
    "default_popup": "popup.html"
  },
  "content_scripts": {
    "matches": ["http://*"],
    "js": ["scripts.js"]
  }
}

当我尝试将此扩展程序加载到Chrome中时,收到以下消息:

无法从“ C:\ Users \ foo \ Desktop \ Extensions \ bar”加载扩展名。
“ content_scripts”的值无效。

我看不到我的值是什么“无效”。我想做的是匹配每个URL,以便我的扩展程序可以操纵scripts.js它所运行的任何页面的DOM(通过javascript
)。我是否错过了某些东西,这一切错了,还是什么?

更新

发布此问题后,我确实注意到Google示例与我的示例略有不同,因此我对代码进行了一些修改以反映其语法:

"content_scripts": [{
  "matches": ["http://*"],
  "js": ["scripts.js"]
}]

话虽如此,当我尝试加载扩展程序时仍然出现以下错误:

无法从“ C:\ Users \ foo \ Desktop \ Extensions \ bar”加载扩展名。
“ content_scripts [0] .matches [0]”的值无效。


问题答案:

您需要将content_scripts字段的值括在方括号中:

"content_scripts": [ {
  "matches": ["http://*"],
  "js": ["scripts.js"]
} ]

(有关更多信息,请参见Chrome文档)

顺便说一句,使用http://*/*将是所有URL的更好匹配(请参阅docs),并添加https://*/*您是否还需要匹配它们。

编辑:

编辑后,出现的错误是由于匹配模式不正确。



 类似资料:
  • 本文向大家介绍google-chrome-extension 从扩展代码获取清单,包括了google-chrome-extension 从扩展代码获取清单的使用技巧和注意事项,需要的朋友参考一下 示例 chrome.runtime.getManifest() 以已解析对象的形式返回扩展的清单。 此方法适用于内容脚本和所有扩展页面,不需要权限, 例如,获取扩展的版本字符串:            

  • 每个VS Code扩展需要一个清单文件package.json,该文件位于扩展的根目录中。 字段 名称 是否必要 类型 说明 name 是 string 扩展的名称,该名称必须为小写且不能有空格。 version 是 string SemVer 兼容版本. publisher 是 string 发布人名字 engines 是 object 一个至少包含vscode键值对的对象,该键表示的是本扩展可

  • Tweetmeme Chrome 扩展其实就是一个精简版的 TweetMeme 按钮,其作用就是让你“随时随地”都可以向你的关注者分享你正在浏览的网页(“随时随地”加引号是因为在天朝该服务不可用),简单点说就是一个 retweet 按钮。通过 Tweetmeme Chrome 扩展分享出的网址会采用 retwt.me 短网址服务进行缩短,对于身在墙外或者随时都在翻墙状态的用户来说非常实用。 安装

  • 问题内容: 我正在尝试使用基本的chrome扩展程序,它像这样 这适用于清单版本1,但是当我将其更改为v2时,出现以下错误。我将不胜感激:) 拒绝加载脚本“ http://sample.com”,因为它违反了以下内容安全策略指令:“ script-src’self’chrome- extension-resource:”。 问题答案: 您应该阅读有关内容安全政策的信息 使用以下命令完成清单文件:

  • Puppeteer 可以用来测试 Chrome 扩展 注意 Chrome / Chromium 扩展当前只能在非无头模式下使用。 下面的代码用来处理扩展的 background page,该扩展的代码在 ./my-extension: const puppeteer = require('puppeteer'); (async () => { const pathToExtension =

  • Electron 支持 Chrome 扩展API的子集, 主要是支持 DevTools 扩展和 Chromium-internal 扩展,但它同时也支持一些其他扩展能。 注意:Electron 不支持商店中的任意 Chrome 扩展,Electron 项目的目标不是与 Chrome 的扩展实现完全兼容。 加载扩展 Electron 只支持加载未打包的扩展 (即不能使用 .crx 文件)。 插件会被