我正在阅读Google Chrome扩展程序的“入门”教程,并且遇到了以下代码:
chrome.declarativeContent.onPageChanged.removeRules(undefined, function() {
chrome.declarativeContent.onPageChanged.addRules([{
conditions: [new chrome.declarativeContent.PageStateMatcher({
pageUrl: {hostEquals: 'developer.chrome.com'},
})
],
actions: [new chrome.declarativeContent.ShowPageAction()]
}]);
});
我查看了“ declarativeContent” API和以下来源:https://developer.chrome.com/extensions/declarativeContent#event-onPageChanged
但是,我不知道“ onPageChanged”代表什么动作。我们在这段代码中修改了哪些“规则”?我知道此操作仅在主机等于“ developer.chrome.com”时才会发生,但我不知道为什么需要“ .removeRules”部分。
答案 0 :(得分:1)
onPageChanged
是来自文档的特殊事件处理程序:
声明性事件处理程序提供了一种定义规则的方法 由声明性条件和动作组成。条件是 在浏览器中评估,而不是JavaScript引擎, 减少了往返延迟,并提高了效率。
onPageChanged
为您提供了3种可以使用规则的方法:
addRules
removeRules
getRules
它们非常不言自明。关于您的代码:
chrome.declarativeContent.onPageChanged.removeRules(undefined, function() {...})
以上所有3个函数均实现回调模式,在removeRules
的情况下,当删除规则ID时,将执行指定的函数。
removeRules
接受的第一个参数是规则ID数组;如果要删除所有当前活动的规则,则使用undefined
。