【发布时间】:2021-04-06 01:19:13
【问题描述】:
我正在尝试开发一个简单的 chrome 扩展。 pageAction 的默认图标应该出现在具有特定 URL (http://www.example.com/*) 的页面上。
有两个文件
manifest.json
{
"manifest_version": 2,
"name": "name",
"description": "description",
"version": "1.0",
"background": {
"scripts": [
"background.js"
],
"persistent": false
},
"page_action": {
"default_icon" : "images/icons/19.png"
},
"permissions": [
"declarativeContent"
]
}
background.js
chrome.runtime.onInstalled.addListener(function () {
chrome.declarativeContent.onPageChanged.removeRules(undefined, function () {
chrome.declarativeContent.onPageChanged.addRules([
{
// rule1
conditions : [
new chrome.declarativeContent.PageStateMatcher({
pageUrl : {urlPrefix : 'http://www.example.com/'}
})
],
actions : [
new chrome.declarativeContent.ShowPageAction()
]
},
{
// rule2
conditions : [
new chrome.declarativeContent.PageStateMatcher({
pageUrl : {queryContains : 'q1=green'}
})
],
actions : [
new chrome.declarativeContent.SetIcon({
path : {"19" : "images/icons/green.png"}
})
]
}
]);
});
});
rule1 应该显示 pageAction 的图标,rule2 应该在 URL 看起来像 http://www.example.com/?q1=green 的页面上将图标更改为绿色版本
但是在安装扩展程序的过程中:
Error in response to events.removeRules: Error: Invalid value for argument 1. Property '.0': Value does not match any valid type choices.
【问题讨论】:
标签: javascript google-chrome google-chrome-extension