我是chrome扩展的初学者。有一个简单的问题。 我的扩展中有代码,但它不起作用。我不知道如何解决它。 在我的扩展中,我使用了一个xml文件来stroe一些数据。有 我的background.html中的代码,但它不起作用
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<script>
function loadXmlFile(){
var xmlDom = null;
var xmlhttp = new XMLHttpRequest();
if( xmlhttp ){
xmlhttp.onreadystatechange = function(){
if( xmlhttp.readyState == 4 ){
if( xmlhttp.status == 200 ){
xmlDom = xmlhttp.responseXML;
}
}
}
xmlhttp.open( "GET",chrome.extension.getURL("/xml/123.xml"),true);
xmlhttp.send( null );
}
return xmlDom;
}
var xmlDom = loadXmlFile();
var s = xmlDom.getElementsByTagName( "to" );
alert( s[0].nodeType );
</script>
</body>
</html>
我使用开发人员工具进行调试,但它说“无法调用方法 'getElementsByTagName'为null“...... 谁可以帮助我?
答案 0 :(得分:0)
loadXmlFile
的返回值初始化为null
且仅设置为onreadystatechange
回调中的某些内容,因此在函数返回时它可能仍为null
。因此xmlDom
在此行中null
,您收到错误:
var s = xmlDom.getElementsByTagName( "to" );
该行和警报应位于onreadystatechange
回调的最里面的块中。