2011-06-28 32 views
1

content_script.jsを使用してChrome拡張機能の背景ページにリクエストを送信する方法を学習しようとしています。私はこれについての多くの答えを読んだが、誰も私を助けたことはありません。リスナーに実行させるようなことはできません。Chrome拡張機能 - content_script.jsが正しく読み込まれない

manifest.jsonを

"background_page": "background.html", 
... 
"content_scripts":[ 
{ 
"matches": ["http://*/*"], 
"run_at": "document_start", 
"js": ["jquery.min.js", "content_script.js"] 
} 
] 
... 

content_script.js

chrome.extension.sendRequest({'url': 'http://example.com'}, function(data) { 
    $("#list").html(data); 
}); 

background.html

<script type="text/javascript"> 

chrome.extension.onRequest.addListener(function(request, sender, callback) { 

    $.ajax({ 
     type: "GET", 
     dataType: 'html', 
     url: request.url, 
     username: "username", 
     password: "password", 
     success: callback 
    }); 
}); 

</script> 

私は必要ですかどこにcontent_script.jsを挿入するのですか?私の理解から、これは、拡張がロードされるときにすべてバックグラウンドで実行されるべきです。どんな助けでも大歓迎です。

+0

コンテンツスクリプトが注入されていますか、devツールコンソールのスクリプトセクションを確認してください –

+0

いいえ、注入されていません。 – rybo

+0

あなたがテストしているウェブサイトは何ですか、SSLでないことを確認してください –

答えて

0

"run_at": "document_start"のため、このスクリプトを挿入するとDOMは準備ができていないので、$("#list").html(data);を実行することはできません。

マニフェストからその行を削除するか、コードをwindow.onloadリスナーの内側に置きます。

+0

したがって、 'run_at'を削除すると、拡張機能がロードされたときにスクリプトが強制的に挿入されますか?スクリプトをいつどこに注入するのか指定する必要はありませんか? – rybo

+0

@rybo拡張機能がロードされているときではなく、注入しているページがロードされているときではなく、DOMを検索できます。私は質問の第二の部分を理解していませんでした。いつどこであなたは何を意味しますか? – serg

関連する問題