9
我正在开发需要打包XML文件(trie数据结构)并能够从内容脚本中读取该文件的Chrome扩展。因此,每次加载扩展后,内容脚本都会在从XML文件读取数据后实例化trie。在内容脚本中阅读Chrome扩展程序打包的文件
如何通过内容脚本(或背景页面)读取此XML文件?我需要使用localStorage吗?
我正在开发需要打包XML文件(trie数据结构)并能够从内容脚本中读取该文件的Chrome扩展。因此,每次加载扩展后,内容脚本都会在从XML文件读取数据后实例化trie。在内容脚本中阅读Chrome扩展程序打包的文件
如何通过内容脚本(或背景页面)读取此XML文件?我需要使用localStorage吗?
一个简单的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对象可能更容易。
谢谢Shrey!这对于后台页面来说很有用,但不适用于内容脚本(因为它们在网页的上下文中运行并最终获取http://某个webpage.com /sample.xml)。原来我只在后台页面中需要trie,而不是在内容脚本中。 最初我不确定在哪里使用trie,所以用XML输出,但JSON是js的更好选择。感谢:) – Vikesh 2011-12-18 11:05:13
其实,我期待chrome。*就像访问扩展打包文件的API一样;看起来他们不存在。 – Vikesh 2011-12-18 11:11:30
是的,它有点反直觉。如果您确实需要内容脚本中的数据,则始终可以使用sendMessage从后台页面传递它。 – Shrey 2011-12-18 11:27:17