すべてのタブで動作するように、バックグラウンドページに機能を設定する必要があります。
// add listener for all tabs
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
var safesite = false;
if (changeInfo === "loading") {
//logic for checking white list, using tab.url
if (!safesite) {
chrome.tabs.update(tabId, { url: 'www.google.com' });
}
}
});
基本的に、すべてのタブにイベントリスナーを追加しています。その読み込み時に、白いリストにあるかどうかをチェックします。ブラックリストに載っているサイトの場合は、好きなURLにリダイレクトしてください。また、.htmlファイルを拡張ディレクトリに含めて、それらをリダイレクトすることもできます。これは、Web Inspectorを含むすべてのタブで起動されるため、http要求のチェックのみを行うロジックを使用したい場合があります。
また、この方法ではブラックリストに記載されたページが短時間表示され、ブロックされたページがblocked_url.htmlページにリダイレクトされます。実験的なAPI、 webRequest では、BEFOREのリクエストをフィルタリングする機能が提供されるはずですページを読み込みますが、Chromeウェブストアが公式のChrome APIの一部になるまで、Chromeウェブストアにアップロードすることはできません。その個人的な使用のためにそれを使用して自由に感じる。
開発の最後のヒント:拡張機能の設定ページ(chrome:// settings/extensionSettings)でのみbackground.htmlをデバッグできます。拡張機能のドリルダウンを開くと、[アクティブなビューを検査する]が表示されます。ここでは、現在実行中の拡張機能固有のページへのリンクをクリックできます。これを行うと、そのページのWebインスペクタが表示されます。
多くの頭が引っかかった後、私はそれを間違って見つけました。それ以来、それは命を救っています。