隐藏特定网址的页面操作

时间:2013-01-06 17:40:24

标签: javascript google-chrome google-chrome-extension

我正在为reddit.com构建chrome扩展程序,我正在使用page action。现在我希望page_action icon仅对特定网址格式可见,即

http://www.reddit.com   [allowed]
http://www.reddit.com/r/*   [allowed]
http://www.reddit.com/r/books/comments/*   [not allowed]

因此,正如我上面提到的那样,我不希望我的扩展程序页面操作图标对于涉及3rd case的{​​{1}}可见。

目前我在comments url of redddit中使用以下代码来实现此目的:

background.js

我还在function check(tab_id, data, tab){ if(tab.url.indexOf("reddit.com") > -1 && tab.url.indexOf("/comments/") == -1){ chrome.pageAction.show(tab_id); } }; chrome.tabs.onUpdated.addListener(check); 添加了以下行,以便在评论页面上停用该扩展程序

manifest.json

所以,我的问题是这是正确/理想的禁用&和隐藏特定页面/网址的扩展名?

1 个答案:

答案 0 :(得分:1)

为什么不Zoidb-我的意思是,正则表达式?

var displayPageAction = function (tabId, changeInfo, tab) {
    var regex = new RegExp(/.../); //Your regex goes here
    var match = regex.exec(tab.url); 
    // We only display the Page Action if we are inside a tab that matches
    if(match && changeInfo.status == 'complete') {
      chrome.pageAction.show(tabId);
    }
};

chrome.tabs.onUpdated.addListener(displayPageAction);

关于这种方法,我认为使用onUpdated.addListener是正确的方法。作为一种好的做法,尝试仅在加载选项卡时显示您的页面操作,除非您的应用程序要求另有说明。

您可以使用this tool来生成正则表达式,如果您需要帮助,请随时再次询问,我们将帮助您组合所需的正则表达式。

相关问题