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>' +  );
}
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>' +  );
}
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>' +  );
}
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>' +  );
}
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>' +  );
}
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>' +  );
}
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>' +  );
}
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
要么加载不正确(404?),要么没有定义fileLoading.js
函数。fileLoading
中有什么,为什么您的fileLoading.js
元素在
标记之外?我猜它找不到您的
文件。。。您是否检查过是否已成功获取?文件加载.js