0

私は reddit.com の chrome 拡張機能を構築しており、そのために使用page actionしています。page_action icon特定の URL 形式でのみ表示されるようにしたい

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

したがって、上で述べたように、拡張ページのアクション アイコンが3rd case関連する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コメントページの拡張機能を無効にするために、以下の行も追加しました

 "exclude_matches": ["http://www.reddit.com/r/*/comments/*"],

それで、私の質問は、これが特定のページ/URLから拡張機能を無効にして非表示にする正しい/理想的な方法ですか?

4

1 に答える 1

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アプローチについては、を使用するのが正しいアプローチだと思います。アプリケーション要件で特に指定されていない限り、グッドプラクティスとして、タブがロードされたときにのみページアクションを表示するようにしてください。

このツールを使用して正規表現を生成できます。サポートが必要な場合は、お気軽にもう一度お問い合わせください。必要な正規表現の組み立てをサポートします。

于 2013-01-06T18:23:07.477 に答える