2012-03-02 2 views
0

私は慎重にGoogle Chrome Extensions Developer's Guideを読んで、localStorageにオプションを保存するように指示しましたが、content_scriptsはどのようにこれらのオプションにアクセスできますか?options.htmlで設定されているオプションはどのように取得できますか?

サンプル:

私はドメインのカップルのためのスクリプトを書きたい、とこのスクリプトは、これらのドメイン上のいくつかのオプションを共有する必要があります。

content_scripts:

//Runs on several domains 
(function(){ 
    var option=getOptions(); 
    //Get options which have been set in options.html 
    if(option){ 
     doSome(); 
    } 
}) 

がoption_page:。

<html> 
    <head> 
     <title>My Test Extension Options</title> 
    </head> 
    <body> 
     option: <input id="option" type="text" /><br /> 
     <input id="save" type="submit" /><br /> 
     <span id="tips">option saved</span> 
     <script type="text/javascript"> 
      (function(){ 
       var input=document.getElementById('option'); 
       var save=document.getElementById('save'); 
       var tips=document.getElementById('tips'); 
       input.value=localStorage.option||''; 
      // Here localStorage.option is what I want content_scripts to get. 
       function hideTips(){ 
        tips.style.visibility='hidden'; 
       } 
       function saveHandler(){ 
        localStorage.option=input.value||''; 
        tips.style.visibility='visible'; 
        setTimeout(hideTips,1000); 
       } 
       hideTips(); 
       save.addEventListener('click',saveHandler); 
      })(); 
     </script> 
    </body> 
</html> 

答えて

2

私はあなたがchrome.extensionsを使用できると思うだろう*あなたの下で実行されている背景ページへの通信の回線を作成するためのAPI内線番号を入力すると、ローカルストレージが得られます。

Content Scriptドキュメントでは、chrome.extensions * APIをコンテンツスクリプトで使用できると指定しているため、これが可能です。しかし、私はこれを試みたことはありません。

接続が確立されたら、バックグラウンドページからコンテンツスクリプトにメッセージを送信するだけで済みます。リテラルオブジェクト内のすべての設定で1つのメッセージを送信することもできます。

Here is an example私は以前に書いた双方向コミュニケーションを作成しています。これを実装したりカスタムソリューションを作成することができますが、これはあなたが探しているものをどのように達成するかと思います。

+0

ああ、私はいくつかのオプションを保存するためにいくつかのファイルを書く必要があります。そのため、私はfirefoxでgreasemonkeyを好む理由です。とにかくありがとうございました。 – Rufus

+0

@Rufus naw、これは簡単で基本的なJavaScriptです。あなたは私もリンクを与えたコードをコピーすることさえできます。文字列化されたオブジェクトとしてローカルストレージを送信するためのプロトタイプメソッドをいくつか作成します。その後、あなたのコンテンツスクリプトでそれを解析して準備を整えます。私があなたに与えたことに基づいて、それはほんの数行のコードでなければなりません。 – jjNford

+0

ありがとう、私はそれを知って、本当にあなたの助けに感謝します。しかし、正直言って、シンプルなユーザースクリプトを書いて、userscripts.orgでホストしたいだけです。 Chromeの拡張機能が非常に複雑で、書くことができれば、それは私にとっては良い考えではありません。 – Rufus

関連する問題