質問: 特定のURLでユーザーをリダイレクトするChrome拡張機能 私は本質的に現在のドメインがリストにあるかどうかを確認するクロム拡張を作成したいと思います。ユーザーを別のURLにリダイレクトし、リンクをクリックさせてから最初に必要なURLに移動させます。 私はJavascriptやクロムの拡張機能をあまり経験していませんが、これは初心者のプロジェクトにとっては簡単なことです。 私がしたいことは、この構造のファイルを持つことです ``` urlregex1#redirecttourl1 urlregex2#redirecttourl2 . . . ``` chrome content_scriptをurlごとに解析し、正規表現のいずれかが一致するかどうかを確認します。 もしそうなら、スクリプトは何らかの形で元のurlを保存し、ユーザをリダイレクトする必要があります。 誰でもこれを実装する方法について正しい方向に私を置くことができますか?私は完全にjavascript関数、クロム拡張API間で失われています....
回答: すべてのタブで動作するように、バックグラウンドページに機能を設定する必要があります。 ``` // 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インスペクタが表示されます。 多くの頭が引っかかった後、私はそれを間違って見つけました。それ以来、それは命を救っています。