2012-02-10 7 views
0

コンテンツスクリプトのデータをbackground.htmlの下のコードに渡していますが、何らかの理由で私のために動作しません。こちらが私は "A1" 変数background.htmlするに合格することはできませんよ、なぜコード..Chrome拡張機能のcontentscriptとbackground.htmlの間でデータを渡す方法

Contentscript.js

var a1 ="Shan"; 
    chrome.extension.sendRequest({method:"text",txt:a1}, function(response) { 
     d=response.data; 
     alert(d); 
    }); 

background.html

if(request.method == "text") 
    { 
     sendResponse({data:request.key}); 
    } 
    else 
    { 
    sendResponse({data:request.key}); 
    }  

私の質問は?それができないかどうか?

+0

ドキュメントに従っていますか? http://code.google.com/chrome/extensions/messaging.html投稿したコードが完全ではないようです。これがすべての場合は、もう一度ドキュメントを参照することをお勧めします。 –

答えて

1

keyではなく、キーの名前はtxtであるためです。

chrome.extension.sendRequest({method:"text",txt:a1} 
              ^^^ Your definition: txt 

sendResponse({data:request.key}); 
          ^^^ Should be txt as well 

警告:私はあなたがsendResponse方法をリサイクルすることができないことを経験しました。 sendResponseを発射した後、その内線番号は将来のsendResponseコールに応答しません。
したがって、それぞれchrome.extension.sendRequestの1つだけsendResponseです。

+0

私もキーでテストしましたが、それは動作しません。なぜですか? – Shan

+0

@Shanあなたは一貫していなければなりません。 'txt'または' key'を使用してください。コードを更新したら、エクステンションをリロードしてその効果を確認してください。 –

+0

問題は変数a1がbackground.htmlに渡されていないことです。引用符で囲んだようなものを与えた場合、それはbackground.htmlに渡されています。 – Shan

関連する問題