2011-12-18 14 views
9

XMLファイル(trieデータ構造)をパッケージ化し、コンテンツスクリプトからそのファイルを読み取る必要があるChrome拡張機能を開発しています。したがって、コンテンツスクリプトは、拡張機能がロードされるたびにXMLファイルからデータを読み込んだ後にトライをインスタンス化します。コンテンツスクリプトでChrome拡張機能をパッケージ化したファイルを読み取る

このXMLファイルをコンテンツスクリプト(またはバックグラウンドページ)から読み取るにはどうすればよいですか? localStorageを使用する必要がありますか?

答えて

6

XMLファイルへの簡単なAjaxのリクエストはあなたのXMLのDOMノードを与える必要があります:

function request(url) { 
    var xhr = new XMLHttpRequest(); 
    try { 
     xhr.onreadystatechange = function(){ 
      if (xhr.readyState != 4) 
       return; 

      if (xhr.responseXML) { 
       console.debug(xhr.responseXML); 
      } 
     } 

     xhr.onerror = function(error) { 
      console.debug(error); 
     } 

     xhr.open("GET", url, true); 
     xhr.send(null); 
    } catch(e) { 
     console.error(e); 
    } 
} 

function init() { 
    request("sample.xml"); 
} 

あなたはJSベースのXMLパーサーを使用するか、または独自のを記述する必要があります。データをJSONオブジェクトとして保存する方が簡単かもしれません。

+0

ありがとうございました!これはバックグラウンドページの魅力のように機能しますが、コンテンツスクリプト(Webページのコンテキストで実行され、http:// some webpage.com /sample.xmlを取得する)には適しません。コンテンツのスクリプトではなく、バックグラウンドページでのみトライが必要であることがわかります。 最初はトライをどこで使うのか分からなかったので、XMLで出力しましたが、JSONはjsの方が良い選択です。ありがとう:) – Vikesh

+0

実際には、私は、拡張機能でパッケージ化されたファイルにアクセスするためのchrome。* APIのようなものを期待していました。彼らは存在しないように見えます。 – Vikesh

+0

ええ、やや直感的です。コンテンツスクリプト内のデータが必要な場合は、sendMessageを使用してバックグラウンドページからデータを渡すことができます。 – Shrey

関連する問題