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