Javascript 未声明引用错误变量

Javascript 未声明引用错误变量,javascript,Javascript,为了弄明白这一点,我已经挠头好几个小时了。但几个小时后,仍然没有运气。所以我创建了一个函数,但是当我运行代码时,它说我得到了一个引用错误,并且说变量没有声明 这是我的密码: <html> <head> <script src = "fileLoading.js"></script> <script> function initialLoad(boolean vraiFaux){ fileLoading("inventory.xml"

为了弄明白这一点,我已经挠头好几个小时了。但几个小时后,仍然没有运气。所以我创建了一个函数,但是当我运行代码时,它说我得到了一个引用错误,并且说变量没有声明

这是我的密码:

<html>

<head>
<script src = "fileLoading.js"></script>
<script>

function initialLoad(boolean vraiFaux){
fileLoading("inventory.xml", vraiFaux); //boolean to variable
}

//function pageWrite(){
// code here
//}

</script>

</head>

<button type = "button" onClick = "initialLoad(false)">
<img  src = "panda4.png" alt="Does this work?"></img>
</button>

<body id = "body" onload="initialLoad(true)">

</body>

</html>

函数初始加载(布尔值vraiFaux){
文件加载(“inventory.xml”,vraiFaux);//布尔值到变量
}
//函数pageWrite(){
//代码在这里
//}
这是我的.js文件

var xmlDoc;

function fileLoading(dname, vraiFaux)
{

if(vraiFaux){
if (window.XMLHttpRequest)
  {
  xhttp=new XMLHttpRequest();
  }
else
  {
  xhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xhttp.open("GET",dname,false);
xhttp.send();
xmlDoc = xhttp.responseXML;
}


var products = xmlDoc.getElementsByTagName("PRODUCT");
var saleItems = new Array();
var p = 0; 

for(var i = 0; i<products.length; i++){
if((products[i].getAttribute("sale")).equals("yes"){
document.getElementById("body").innerHTML+=
('<img src = ' + products[i].getElementsByTagName("PIC")[0].childNodes[0].nodeValue + '</img>' ); // need spacing

saleItems[p] = i;
 p++;
if (p == 3)
break;
}

}
} 




function pageWrite(){
document.getElementById("body").innerHTML=
('<table border = '1'>');
var checker = 0;
for(int externalForLoop = 0; externalForLoop < products.length){


if(checker => products.length)
break;
document.getElementById("body").innerHTML += 
('<tr>');
for (int i = 0; i =< 2; i++){
document.getElementById("body").innerHTML += 
('<td><b><img src = ' + products[checker].getElementsByTagName("PIC")[0].childNodes[0].nodeValue + '</img></b></br></td>' + &nbsp);

} 
document.getElementById("body").innerHTML += 
('</tr></br>');
//next for loop goes after here
for (int n = 0; n =< 2; n++){
document.getElementById("body").innerHTML += 
products[checker].getElementsByTagName("NAME")[0].childNodes[0].nodeValue + '</b></br></td>' + &nbsp);
} 
document.getElementById("body").innerHTML += 
('</tr></br>);
//next for loop goes after here
for (int c = 0; c =< 2; c++){
document.getElementById("body").innerHTML += 
products[checker].getElementsByTagName("CATAGORY")[0].childNodes[0].nodeValue + '</b></br></td>' + &nbsp);
} 
document.getElementById("body").innerHTML += 
('</tr></br>);
//next for loop goes after here
for (int o = 0; o =< 2; o++){
document.getElementById("body").innerHTML += 
products[checker].getElementsByTagName("COMPANY")[0].childNodes[0].nodeValue + '</b></br></td>' + &nbsp);
} 
document.getElementById("body").innerHTML += 
('</tr></br>);
//next for loop goes after here
for (int d = 0; d =< 2; d++){
document.getElementById("body").innerHTML += 
products[checker].getElementsByTagName("DESCRIPTION")[0].childNodes[0].nodeValue + '</b></br></td>' + &nbsp);
} 
document.getElementById("body").innerHTML += 
('</tr></br>);
//next for loop goes after here
for (int p = 0; p =< 2; p++){
document.getElementById("body").innerHTML += 
products[checker].getElementsByTagName("PRICE")[0].childNodes[0].nodeValue + '</img></b></br></td>' + &nbsp);
} 
document.getElementById("body").innerHTML += 
('</tr></br>);
//next for loop goes after here
for (int s = 0; s =< 2; s++){
document.getElementById("body").innerHTML += 
products[checker].getElementsByTagName("SALE")[0].childNodes[0].nodeValue + '</b></br></td>' + &nbsp);
} 
document.getElementById("body").innerHTML += 
('</tr></br>);
//next for loop goes after here
checker++;
if (checker == (products.length - 1)){
document.getElementById("body").innerHTML += 
('</table>')
}

var products=xmlDoc.getElementsByTagName("PRODUCT");

}
var-xmlDoc;
函数文件加载(dname,vraiFaux)
{
如果(vraiFaux){
if(window.XMLHttpRequest)
{
xhttp=newXMLHttpRequest();
}
其他的
{
xhttp=新的ActiveXObject(“Microsoft.XMLHTTP”);
}
xhttp.open(“GET”、dname、false);
xhttp.send();
xmlDoc=xhttp.responseXML;
}
var products=xmlDoc.getElementsByTagName(“产品”);
var saleItems=新数组();
var p=0;
对于(var i=0;i products.length)
打破
document.getElementById(“body”).innerHTML+=
('');
for(int i=0;i=<2;i++){
document.getElementById(“body”).innerHTML+=
(“
”+); } document.getElementById(“body”).innerHTML+= (“
”); //下一个for循环在这里后面 对于(int n=0;n=<2;n++){ document.getElementById(“body”).innerHTML+= 产品[checker].getElementsByTagName(“名称”)[0].childNodes[0].nodeValue+'
'+; } document.getElementById(“body”).innerHTML+= (“
); //下一个for循环在这里后面 对于(int c=0;c=<2;c++){ document.getElementById(“body”).innerHTML+= 产品[checker].getElementsByTagName(“分类”)[0].childNodes[0].nodeValue++'
'++); } document.getElementById(“body”).innerHTML+= (“
); //下一个for循环在这里后面 对于(into=0;o=<2;o++){ document.getElementById(“body”).innerHTML+= 产品[checker].getElementsByTagName(“公司”)[0].childNodes[0].nodeValue+'
'+; } document.getElementById(“body”).innerHTML+= (“
); //下一个for循环在这里后面 对于(int d=0;d=<2;d++){ document.getElementById(“body”).innerHTML+= 产品[checker].getElementsByTagName(“说明”)[0].childNodes[0].nodeValue++'
'++); } document.getElementById(“body”).innerHTML+= (“
); //下一个for循环在这里后面 对于(int p=0;p=<2;p++){ document.getElementById(“body”).innerHTML+= 产品[checker].getElementsByTagName(“价格”)[0].childNodes[0].nodeValue++'
'++); } document.getElementById(“body”).innerHTML+= (“
); //下一个for循环在这里后面 对于(int s=0;s=<2;s++){ document.getElementById(“body”).innerHTML+= 产品[checker].getElementsByTagName(“销售”)[0].childNodes[0].nodeValue+'
'+; } document.getElementById(“body”).innerHTML+= (“
); //下一个for循环在这里后面 checker++; if(checker==(products.length-1)){ document.getElementById(“body”).innerHTML+= ('') } var products=xmlDoc.getElementsByTagName(“产品”); }
我猜是布尔值。尝试删除它

在Javascript中,不需要指定变量的类型。因此,它可能将
boolean
读取为变量名,但发现没有名为
boolean
的变量,因此抛出一个引用错误

此外,
fileload.js
包含多个语法错误。我建议您查看它应该为您产生的错误

特别是:

  • 第26行缺少右括号
  • 第44行的错误报价
  • 第46行出现意外的
    int
    (不需要这些!)
  • 第46行需要for循环中的第3个子句
  • 使用
    =>
    代替第49行的
    =
  • 第53行出现意外的
    int

  • Used
    =尝试过,但仍然给出相同的错误。错误现在是未定义文件隐藏。在初始化之前,加载不是定义的,编辑不是你不需要的。在JS中这样做是错误的。变量没有类型。Objects do.ill也会发布我的js文件我不能确定是否所有浏览器都会抛出这个错误。。。我希望如此。Chrome当然有。@user2444526,@Hristo:Oops,删除了一条注释,因为它是错误的,但这里是验尸报告:看起来内联脚本中的语法错误导致了
    initialLoad
    从未定义,引发了一个引用错误。新的引用错误可能意味着您的
    fileLoading.js
    要么加载不正确(404?),要么没有定义
    fileLoading
    函数。
    fileLoading.js
    中有什么,为什么您的
    元素在
    标记之外?我猜它找不到您的
    文件加载.js
    文件。。。您是否检查过是否已成功获取?