5

this answerで行われたことを複製することで、ChromeのwebRequest APIを理解するのに役立つChrome拡張機能を作成しようとしていますが、webRequestが現在は不要になっている名前空間Chromeのトランクに私が持っている私のマニフェストファイルでGoogle Chromeを使用した単純転送webRequest API

<!DOCTYPE html> 
<html> 
    <head> 
    <script> 
function interceptRequest(request) { 
    return { redirectUrl: 'http://www.yahoo.com' } 
} 
chrome.webRequest.onBeforeRequest.addListener(interceptRequest, { urls: ['*://*.google.com/*'] }, ['blocking']); 
    </script> 
    </head><body></body> 
</html> 

:以前の質問をしに基づいて

{ 
    "name": "My Extension", 
    "version": "0.1", 
    "background_page": "background.html", 
    "permissions" : [ 
    "webRequest", 
    "webRequestBlocking", 
    "*://*/*" 
    ] 
} 

、私はhttp://www.yahoo.comに転送する必要があります私はアクセスしたときに私の背景ページで

私は、コードを持っていますhttps://www.google.comとなりましたが、私の内線番号がロードされていますが、転送の効果なしでhttps://www.google.comが読み込まれます。 ChromeのwebRequest APIを使用して、あるURIから別のURIにユーザーを転送するには、どうすればよいですか?

+0

これは奇妙です。私が考えることができるのは、同期XHRをロードしていないか、バックグラウンドページのオンラインリソースのスクリプトタグをChromeドキュメントから読み込んでいないことを確認することだけです。 – gengkev

答えて

3

URL一致パターンが正しくありません。あなたは単に末尾にスラッシュを追加する必要があります。

{urls: ['https://www.google.com/']} 

また、あなたが使用できます。 '*://www.google.com/' すべてのプロトコルに適合するように「*:// WWW。ただ、ドメインを超えて一致する、および'google.com/* *:すべてのサブドメイン、プロトコルやパスに一致するように//*.google.com/*'など

参照: http://code.google.com/chrome/extensions/trunk/match_patterns.html

+0

フィードバックをいただきありがとうございますが、これらの解決策ではないため、ブラウザがYahooに転送されました。上記に何か間違っているか、私が含まなかった何かが見えますか? –

+1

あなたのコードを使って拡張を作成しました。上記の私のコメントで説明したように、 'urls'フィールドに後ろにスラッシュを入れた後、うまく動作しています。私が気づくのは、マニフェストファイルの 'content_scripts'です。あなたは' content.js'ファイルを持っていますか?あなたはこの機能のためにそれを必要としません。すべてのパスが正しいかどうか(background.htmlとcontent.jsは拡張機能のルートにあります)また、background.htmlのJSコードの周りに ''タグをラップします(ラップされたと仮定しました.JSファイルではなくHTMLファイルです)。 – rgthree

+0

「/」とマニフェストからcontent.jsを除外しても、http://www.google.comにアクセスするときにページを転送することができませんでした。上記のファイルのソースをより包括的に更新しました(現在はファイルの内容全体が含まれています)。マニフェスト内の余分なアイテムを削除します。あなたが作成したバージョンから逸脱している上記のファイルには何か目立つものはありますか?私は本当にこれを動作させることに興味があります。 –

関連する問題