Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 隐藏特定url的页面操作_Javascript_Google Chrome_Google Chrome Extension - Fatal编程技术网

Javascript 隐藏特定url的页面操作

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的第三种情况下可见 目前我

我正在为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的
第三种情况下可见

目前我正在使用我的
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
是正确的方法。作为一种良好的做法,除非应用程序要求另有规定,否则请尝试仅在加载选项卡时显示页面操作

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