Google chrome Chrome扩展:无法调用方法';getElementsByTagName';空的

Google chrome Chrome扩展:无法调用方法';getElementsByTagName';空的,google-chrome,Google Chrome,我是chrome扩展的初学者。有一个简单的问题。 我的扩展中有代码,但它不起作用。我不知道如何理解它。 在我的扩展中,我使用了一个xml文件来存储一些数据 代码在我的background.html中,但它不起作用 <!DOCTYPE html> <html> <head> </head> <body> <script> function loadXmlFile(){ var xmlDom = null;

我是chrome扩展的初学者。有一个简单的问题。 我的扩展中有代码,但它不起作用。我不知道如何理解它。 在我的扩展中,我使用了一个xml文件来存储一些数据 代码在我的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>

函数loadXmlFile(){
var xmlDom=null;
var xmlhttp=new XMLHttpRequest();
if(xmlhttp){
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4){
if(xmlhttp.status==200){
xmlDom=xmlhttp.responseXML;
}
}
}
open(“GET”,chrome.extension.getURL(“/xml/123.xml”),true);
xmlhttp.send(空);
}
返回xmlDom;
}
var xmlDom=loadXmlFile();
var s=xmlDom.getElementsByTagName(“to”);
警报(s[0]。节点类型);
我使用开发人员工具进行调试,但它说“不能调用方法” “getElementsByTagName”为null“。。。
谁能帮我?

函数返回的
loadXmlFile
值被初始化为
null
,并且只在
onreadystatechange
回调中设置为某个值,因此在函数返回时,它可能仍然是
null
。因此,
xmlDom
在这一行中是
null
,在这一行中您会得到错误:

var s = xmlDom.getElementsByTagName( "to" );
该行和警报应位于
onreadystatechange
回调的最内层块中