Javascript 隐藏特定url的页面操作
我正在为reddit.com构建一个chrome扩展,我正在为此使用Javascript 隐藏特定url的页面操作,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我正在为reddit.com构建一个chrome扩展,我正在为此使用页面操作。现在,我希望page\u操作图标仅对特定的url格式可见,即 http://www.reddit.com [allowed] http://www.reddit.com/r/* [allowed] http://www.reddit.com/r/books/comments/* [not allowed] 因此,如上所述,我不希望我的扩展页操作图标在涉及redddit的注释url的第三种情况下可见 目前我
页面操作
。现在,我希望page\u操作图标
仅对特定的url格式可见,即
http://www.reddit.com [allowed]
http://www.reddit.com/r/* [allowed]
http://www.reddit.com/r/books/comments/* [not allowed]
因此,如上所述,我不希望我的扩展页操作图标在涉及redddit的注释url的第三种情况下可见
目前我正在使用我的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
中添加了下面的一行,以禁用评论页面上的扩展
"exclude_matches": ["http://www.reddit.com/r/*/comments/*"],
因此,我的问题是,这是从特定页面/url禁用和隐藏扩展的正确/理想方法吗?为什么不使用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);
关于方法,我认为使用onUpdate.addListener
是正确的方法。作为一种良好的做法,除非应用程序要求另有规定,否则请尝试仅在加载选项卡时显示页面操作
您可以使用来生成正则表达式,如果您需要帮助,请随时再次询问,我们将帮助您组装所需的正则表达式