问题标签 [chrome-extension-manifest-v2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 将图像嵌入 Chrome 扩展程序
我正在构建一个 Google Chrome 扩展,它将 HTML 注入到一个真实的网页中。注入还包含图像,现在我想知道如何在扩展中引用图像。到目前为止,我只能使用http://example.com/myimage.png在服务器上引用它们。但这需要一段时间才能加载。
是否可以在扩展程序中打包图像并从浏览器的任何位置引用它们?如何?
谢谢你的帮助。
javascript - 获取 Chrome 扩展内容脚本以识别 URL 哈希中的延迟更改
我有一个 Chrome 扩展程序(当前清单 v2,但很快将升级到 v3),它需要与通过更改 URL 中的哈希来模拟页面更改的 SPA 一起使用。
例子:
我有单独的内容脚本#page1
和#page2
,以及网站上其他页面的默认内容脚本。
我遇到的问题是页面最初加载时没有散列,然后在延迟几秒钟后,应用程序添加了#page1
散列。换句话说,当用户导航到#page1
:
- 该站点最初加载为https://www.example.com/somedir/
- 我的 #page1 的 Chrome 扩展内容脚本查找包含 glob
*#page1
,在 URL 中看不到#page1
哈希并回退到默认内容脚本 - 几秒钟的延迟后,站点将
#page1
哈希附加到 URL,大概是通过设置location.hash
(即,URL 现在是https://www.example.com/somedir/#page1)
我认为我正在寻找某种方法来检测#page1
哈希已添加到 URL,然后强制扩展重新执行并注入正确的内容脚本#page1
。有没有办法做到这一点?如果没有,是否有其他方法可以解决此时间问题?
谢谢你。
javascript - 内容脚本不与后台脚本通信 - chrome 扩展
我正在尝试将新标签 URL 从 background.js 发送到 content.js。.sendMessage() 执行但没有到达 content.js
背景.js:
内容.js:
清单.json:
google-chrome - 侦听器不适用于 Chrome 丰富的通知 API ManifestV2-Chrome 扩展
我无法使用清单 V2 进入通知 API 的任何侦听器函数。显示通知后我可以执行回调函数。我还可以看到chrome.notifications.onClicked.addListener
在调试模式下使用时存在。
这是我的 manifest.json 文件
脚本.js
console.log 结果
javascript - 尝试使用 chrome 扩展复制和粘贴表单数据
我正在尝试创建一个 chrome 扩展来复制表单数据并粘贴它。我以某种方式取得了结果,但突然停止工作。我的 content_script1 和 content_script2 没有被加载。我对此有点陌生,并且对造成这种情况的原因感到困惑。我的代码是:
清单.json
弹出窗口.html
Popup.js
content_script1.js
content_script2.js
我正在使用 test.html 来测试我的应用程序
测试.html
javascript - 如何使用 chrome 扩展对以“chrome-extension://....../options.html”开头的 url 执行内容脚本
我已使用“<all_urls>”获取权限。但是,我收到了这个错误。“无法访问页面内容。扩展清单必须请求访问相应主机的权限。”
chrome.tabs.create({ url: 'chrome-extension://padekgcemlokbadohgkifijomclgjgif/options.html#!/profile/proxy' }, function(tab) {
chrome.tabs.executeScript(tab.id, { file: 'js /content.js' });
});
清单.json
如果这是不可能的。然后请建议我其他方法。我的目标是更改或修改其他现有扩展中的选项。
google-chrome - chrome.browsingData.remove 或 chrome.cookies.remove 不删除所有 cookie
在我的 chrome 扩展中,我想删除所有内容。我正在使用此代码
这是删除其他东西,但不是所有的 cookie 和缓存。我有以下权限并使用"manifest_version": 2
我什至尝试使用cookies方法删除所有cookies
当我使用chrome.cookies.getAll
, after chrome.browsingData.remove
orchrome.cookies.remove
时,这显示了0
cookie 计数。但是当我在浏览器中进入历史清除选项时,我看到一些计数显示在Cookies 和其他站点数据中
我什至试过
chrome.browsingData.remove
但这也不是清除一些cookie 。正如您在图像中看到的那样,即使并非所有缓存都已清除。当我从浏览器清除选项中清除它时,cookie 计数变为0
但不是来自 chrome 扩展。我错过了什么吗?
google-chrome-extension - 在开发过程中使用 CI/CD 和 update.xml 自动更新 Chrome 扩展
我在本地开发了一个 Chrome 扩展程序,它是一个 React 应用程序。
我已经设置了一个 CI/CD 管道,以便构建 React 应用程序yarn build
以生成dist
包含应用程序文件和manifest.json
. 然后,管道使用此 npm 包创建文件并将其与已使用新版本号和新文件 URL 更新.crx
的文件一起上传到公共存储位置。update.xml
.crx
我在本地创建了一个私钥 ( key.pem
) 并存储在密钥库中,这样 CI 管道中的“打包”作业每次都使用相同的私钥。公钥已添加到 ,manifest.json
以便应用 ID 每次都保持相同。
更新2.xml
清单.json
安装和更新步骤:
- 转到
chrome://extensions/
> 开发人员模式 > 加载解压 > 选择本地dist
目录。 - 解压后的扩展出现在带有 app id 的扩展列表中:
blahblahooaejaldnohkhmaedknkfogn
- 选择扩展并单击“更新”
预期结果:
Chrome 查询远程update.xml
文件,查看比最初安装的版本更高的版本,crx
从指定位置下载并安装新文件。
实际结果:
扩展未更新。
注意:我crt
从存储位置下载了 CI/CD 生成的并上传到这里。该在线工具显示的公钥与key
manifest.json 中的值匹配,计算出的应用程序 ID 与update.xml
.
为了更深入地挖掘,我打开了 Fiddler4 并嗅探了 Chrome 发出的调用。尽管我不明白所有内容,但其中一个回复是:
那个“应用程序 ID”不是我的(或者是 Chrome 应用程序 ID?),但“错误未知应用程序”的状态可能会提示正在发生的事情。
google-chrome-extension - 如何跳过私有 Chrome 扩展的手动测试?
我正在构建一个私有的扩展,只有一些测试用户可以访问。
它使用我拥有的页面创建 iFrame。iFrame 是一个拼图或单词拼图,在一段时间或点击页面后生成。所以扩展做了一些通常不应该做的事情。好吧,如果以未打包的形式导入,它可以在 DEV 浏览器上运行。我想在普通浏览器上执行测试,并可能更改策略以对用户隐藏扩展。
该扩展也可以在不声明主机 (http/s) 的情况下工作,但我必须添加 content_scripts,并且 content_scripts 可能会触发额外的测试/评论。脚本可以以不同的方式内联吗?
Welll..有没有办法跳过私人/有限用户扩展的手动审查?
ps 我不想等待一个星期(我的第一次延期,所以我不知道需要多长时间)才能获得不会公开分发的内容。因为我已经等了几个小时并且没有审查 - 我想它将被手动审查。阅读我的临时代码不是一件令人愉快的任务。
编辑:我删除了一些不需要的权限。我正在修改 content_script,但它仍然会进行人工审核。
清单是
google-chrome-extension - 两个后台脚本之间的 sendMessage/onMessage.addListener 不起作用
两个后台脚本之间的 sendMessage 和 onMessage.addListener 不起作用。此致!
背景1.js
背景2.js