2011-07-21 10 views
0

私はコンテンツスクリプトでlocalstorageにアクセスする方法を知っていますが、一度だけです。私はsendRequest経由でアクセスしますが、このメソッドをイベント関数で使用しようとすると、jvascriptファイルはロードされません。 onclickイベントが発生したときなど、何度もオプションにアクセスできますか? Googleのコードウェブサイトを見て、chrome.extension.connect()を使ってコンテンツスクリプトと背景の間に接続を作成するものが見つかりました。私はそれを使用する必要がありますか?Chrome拡張:コンテンツスクリプトでローカルストレージに複数回アクセスする

ありがとうございます!

+0

コードを表示できますか? – serg

答えて

1

実際に何回でもできるだけsendRequestを使用できますが、別の方法でやりたい場合は、コンテンツスクリプトとバックグラウンドページの間で通信するlong-lived channel(または「メッセージトンネル」と呼ばれるもの)を開くことができます。あなたのコンテンツスクリプト

、あなたはチャンネルを開く
var port = chrome.extension.connect({name: "myChannel"}); を使用することができます。

その後、あなたはbackground pageに新しいメッセージを送信するために
port.postMessage({message: "This is a message."});
を使用することができます。

port.onMessage.addListener(function(msg) { })は新しいメッセージを聞きます。

あなた背景ページで

chrome.extension.onConnect.addListener(function(port) { 
    port.onMessage.addListener(function(msg) { 
     if(port=="myChannel"){ 
      console.log(msg+" from port "+port)  //Gives you the message 
     } 
    }) 
}) 

は、特定のポートで新しいメッセージを聞きます。

関連する問題