但严重的是,我有一点困境,我正在尝试使用chrome扩展,它只是从服务器上的脚本中获取XML输出并以令人愉悦的方式显示它。
这是XML结果
<foo>
<level>3</level>
<message>
No Additional Information
</message>
</foo>
基本上我需要做的就是为每个级别放置一个条件语句并显示消息。然而,我似乎只是让XHR工作有问题。
我的清单文件确实拥有XML文件及其托管的整个域的权限(目前用于调试目的)。
自从我使用javascript以来,已经过了很长时间,事情发生了巨大的变化。对于我为Firefox完成的扩展工作而言,我也没有任何帮助。
有什么想法吗?
编辑:
为了澄清我对我需要的if语句没问题,实际上启动XHR应该没问题,我的问题是操纵XML文件中的数据。
答案 0 :(得分:1)
使用XmlHttpRequest(XHR)获取XML文件时,可以使用responseXML
指定对请求的响应。响应将被解析,就像它是text / xml流一样。
responseXML
的结果是DOM Document对象。您可以在文档。*下使用任何JavaScript API,例如document.getElementById
,document.querySelector
等。它们都在上面的文档链接中定义。
如果responseXML
返回null,则表示服务器没有抛出正确的mimetype。您可以使用overrideMimeType before calling
send()`。
例如
(同步XHR,您也可以通过指定onreadystatechange来执行异步):
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://example.com/db.xml');
xhr.overrideMimeType('text/xml');
xhr.send(null)
var root = xhr.responseXML;
var someidDOM = root.getElementById('someid');
请记住,为了实现这一点,您应该将该代码放在Background Page中,并授予permission访问该资源的权限。您可以使用的match patterns可以是网址:
{
// Required
"name": "My Extension",
"version": "1.0",
"background_page": "background.html",
"permissions": [ "http://example.com/db.xml" ]
}
希望这有助于您开始使用!