2011-12-18 75 views
9

我正在开发需要打包XML文件(trie数据结构)并能够从内容脚本中读取该文件的Chrome扩展。因此,每次加载扩展后,内容脚本都会在从XML文件读取数据后实例化trie。在内容脚本中阅读Chrome扩展程序打包的文件

如何通过内容脚本(或背景页面)读取此XML文件?我需要使用localStorage吗?

回答

6

一个简单的Ajax请求的XML文件应该给你的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

谢谢Shrey!这对于后台页面来说很有用,但不适用于内容脚本(因为它们在网页的上下文中运行并最终获取http://某个webpage.com /sample.xml)。原来我只在后台页面中需要trie,而不是在内容脚本中。 最初我不确定在哪里使用trie,所以用XML输出,但JSON是js的更好选择。感谢:) – Vikesh 2011-12-18 11:05:13

+0

其实,我期待chrome。*就像访问扩展打包文件的API一样;看起来他们不存在。 – Vikesh 2011-12-18 11:11:30

+0

是的,它有点反直觉。如果您确实需要内容脚本中的数据,则始终可以使用sendMessage从后台页面传递它。 – Shrey 2011-12-18 11:27:17

相关问题