2

クライアント側の Web プログラミング言語に触れるのはこれが初めてで、最初の chrome アドオンを作成しようとしています。基本的に私がやりたいことは、次からリダイレクトするコードを作成することです:-

ABC.com/ID

A.ABC.com/ID

ここまでですべてのコードを記述しましたが、ABC.com/ID をロードし、完了するのを待ってから、コンテンツ スクリプトを挿入し、A.ABC.com/ID を再ロードします。これは明らかに時間の無駄です。DNSルックアップの前(新しいサブドメイン上にあるため役に立たないため)、またはサイトへの接続を開く前に(これは私たちがいるページではないため)、クロムにこのスクリプトをロードするように指示する方法はありますか探している)?コンテンツ スクリプトが最善のアイデアではない可能性があることは理解しています。

4

1 に答える 1

1

はい、コンテンツ スクリプトなしでWeb リクエスト APIを使用して実現できます。次のデモンストレーションでは、すべての URL をブロックし、Facebookそれらを にリダイレクトしますGoogle。同様に、このユース ケースではABC.com/ID代わりにFacebook使用し、A.ABC.com/ID代わりに使用します。Google

参考文献

manifest.json

すべての権限が利用可能であることを確認し、背景ページを拡張子付きで登録します。

{
  "name": "Hanlder for Navigation",
  "description": "http://stackoverflow.com/questions/14050467",
  "version": "1",
  "manifest_version": 2,
  "background": {
    "scripts": ["background.js"]
  },
  "permissions":["https://www.facebook.com/*","webRequest","webRequestBlocking"]
}

background.js

このコードは、 へのすべての URL リクエストをブロックしFacebook、 にリダイレクトしますGoogle

// Register an event listener which 
//traces all requests before being fired
chrome.webRequest.onBeforeRequest.addListener(function (details) {
    return {
        redirectUrl: "http://www.google.co.in/" /*Redirection URL*/
    };
}, {
    urls: ["*://www.facebook.com/*"] /* List of URL's */
}, ["blocking"]); // Block intercepted requests until this handler has finished

Output

へのすべてのリクエストFacebookは にリダイレクトされGoogleます。

于 2012-12-27T07:05:43.037 に答える