标签: web-extension

在浏览器的每个页面上运行我的 JavaScript 代码,类似于 Chrome 扩展程序

我知道使用 Chrome,我可以使用代码片段在网页上手动运行一些 JavaScript 代码。但这需要手动执行代码片段。有没有办法让我的浏览器(Chrome 或 Firefox)在每次访问新页面时加载一些 JavaScript 代码?

javascript userscripts google-chrome-extension firefox-addon-webextensions web-extension

6
推荐指数
2
解决办法
5910
查看次数

安装我自己的签名扩展时,获取包无效“crx_required_proof_missing”

我正在为我的公司构建一个内部扩展。由于它是一个内部工具,我不想将其发布到 Chrome 网上应用店。

\n

为了能够自行托管浏览器扩展,我正在执行以下步骤:

\n

(之前):\xc2\xa0我创建了一个 .pem 来签署扩展(+在更新中保持恒定的扩展 ID)

\n
    \n
  1. 我正在构建源代码

    \n
  2. \n
  3. 我正在使用 chrome 打包并签署扩展chromium --pack-extension=./build_dir/ --pack-extension-key=./key.pem

    \n
  4. \n
  5. 我正在更新update.xml文件以反映新版本号

    \n
  6. \n
  7. 我上传了签名的.crx和update.xml

    \n
  8. \n
\n

我有一个网站,其中有一个指向 .crx 文件的链接。\xc2\xa0 问题如下:单击该文件时,会下载该文件,并且 chrome 会认为它是浏览器扩展。然后:我收到“包无效 crx_required_proof_missing ”。

\n

我缺少什么?

\n

下载扩展程序后,我该怎么做才能安装自托管扩展程序?

\n

笔记:

\n

我知道我可以提取 .crx 内容并将扩展加载为“解压”,但这不是我想要的:部署将更加复杂(更多手动步骤)并且更新不会自动。

\n

.crx 文件似乎具有正确的标头,并且可以公开访问。更新文件也是正确且可访问的。

\n

信息:

\n

是的,清单包含\xc2\xa0properties key和\xc2\xa0 update_url

\n

在 chrome://extensions 中拖放 .crx 文件时(在开发模式下):扩展程序已安装,但我在扩展卡上收到红色警告:“此扩展程序未在 Chrome Web Store 中列出,可能会在您不知情的情况下添加了”

\n

在 chrome://extensions 中拖放 .crx …

google-chrome chromium google-chrome-extension web-extension

6
推荐指数
0
解决办法
1558
查看次数

未捕获的类型错误:无法构造“URL”:使用消息时 chrome 扩展 v3 中的 URL 无效

这是 v3 中 chrome 的最小扩展:

清单.json

{
  "manifest_version": 3,
  "name": "Test",
  "version": "1.0",
  "description": "Test extension",
  "icons": {
    "48": "dark.png"
  },
  "background": {
    "service_worker": "button.js"
  },
  "permissions": [
    "activeTab"
  ],
  "action": {
    "default_icon": "dark.png",
    "default_title": "Test"
  }
}
Run Code Online (Sandbox Code Playgroud)

按钮.js

chrome.action.onClicked.addListener(tab => {
  console.log('clicked')
  chrome.tabs.sendMessage(tab.id, { value: false })
});
Run Code Online (Sandbox Code Playgroud)

API在文档中看起来非常清楚所以我不明白为什么当我按下插件按钮时,我会收到奇怪的错误:

extensions.js:4187 Uncaught TypeError: Failed to construct 'URL': Invalid URL
    at ExtensionsErrorPageElement.onSelectedErrorChanged_ (extensions.js:4187:2827)
    at Object.runObserverEffect [as fn] (polymer_bundled.min.js:1:37568)
    at runEffectsForProperty (polymer_bundled.min.js:1:37087)
    at runEffects (polymer_bundled.min.js:1:36604)
    at ExtensionsErrorPageElement._propertiesChanged (polymer_bundled.min.js:1:52973)
    at ExtensionsErrorPageElement._flushProperties …
Run Code Online (Sandbox Code Playgroud)

javascript plugins google-chrome google-chrome-extension web-extension

4
推荐指数
1
解决办法
2万
查看次数

在 ManifestV3 Service Worker 后台脚本中使用“window”全局变量

我正在开发一个 Manifest v3 浏览器扩展,我需要从后台脚本识别当前正在运行该扩展的浏览器。由于 ManifestV3 扩展使用 Service Worker,因此它没有 DOM 或window. 所以我无法使用window.navigator.userAgent.

我发现一个相关的问题讨论如何获取窗口高度和宽度信息,但我找不到任何其他信息来获取浏览器的 userAgent。

这可能吗?

firefox-addon google-chrome-extension firefox-addon-webextensions web-extension

2
推荐指数
1
解决办法
2079
查看次数