我正在开发一个仅在特定域中有效的扩展页面操作,我可以为页面操作添加多个链接吗?我的background.js就是这个。
可以在background.html中为扩展程序页面操作添加更多链接吗?
// background.js
chrome.runtime.onInstalled.addListener(function() {
chrome.declarativeContent.onPageChanged.removeRules(undefined, function() {
chrome.declarativeContent.onPageChanged.addRules([
{
conditions: [
new chrome.declarativeContent.PageStateMatcher({
pageUrl: { urlContains: 'www.exemple.com' },
})
],
actions: [ new chrome.declarativeContent.ShowPageAction() ]
}
]);
答案 0 :(得分:11)
是的,您可以通过在conditions
列表中添加多个PageStateMatcher
来为多个网站注册网页操作。
chrome.runtime.onInstalled.addListener(function() {
chrome.declarativeContent.onPageChanged.removeRules(undefined, function() {
chrome.declarativeContent.onPageChanged.addRules([{
conditions: [
new chrome.declarativeContent.PageStateMatcher({
pageUrl: { hostSuffix: 'example.com' }
}),
new chrome.declarativeContent.PageStateMatcher({
pageUrl: { hostSuffix: 'example.net' }
}),
],
actions: [ new chrome.declarativeContent.ShowPageAction() ]
}]);
});
});
注意:我将urlContains
替换为hostSuffix
,因为您希望在某些域上显示页面操作,而不是在其URL包含网站主机的所有页面上显示(例如,您可能不会&# 39; t想要匹配http://localhost/path/containing/www.example.com
)。有关匹配网页的更多方法,请参阅UrlFilter
type的文档。
答案 1 :(得分:0)
使用正则表达式,您可以使用一条规则来匹配多个域。
例如,以下内容与每个国家/地区的所有Google搜索页匹配。
pageUrl: { urlMatches: '^(www\.)?(google.).*\/search\?', schemes: ['https'] },