如何在扩展页面操作上添加更多链接

时间:2014-12-02 16:51:05

标签: google-chrome google-chrome-extension

我正在开发一个仅在特定域中有效的扩展页面操作,我可以为页面操作添加多个链接吗?我的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() ]
}
]);

2 个答案:

答案 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'] },