我从HTML文件调用的JavaScript无法正常工作。
以下是来自html文件的代码:
<li><a href="#" class="decorNavi" onclick ="xmlRequest('about')" >ABOUT</a></li>
这是我的剧本:
function xmlRequest(target){
var targetClick;
targetClick = target;
if (window.XMLHttpRequest) {
xmlRequest = new XMLHttpRequest();
}
else{
xmlRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlRequest.open("GET", "targetClick"+".html?="+Math.random() , true);
xmlRequest.onreadystatechange = function(){
if (xmlRequest.readyState == 4 && xmlRequest.status ==200) {
document.getElementById("midContainer").innerHTML = xmlRequest.responseText;
}
}
xmlRequest.send();
}
任何人都可以解释我的错误吗?请记住,我是初级网页设计师,对于蹩脚的问题感到抱歉。
答案 0 :(得分:0)
在你从HTML调用javascript时,必须将其定义为String。所以请用这样的引号括起来:
<li><a href="#" class="decorNavi" onclick ="xmlRequest('about')" >ABOUT</a></li>
就像你做的那样,about应该是一个JS变量,所以它是未定义的。
答案 1 :(得分:0)
我很确定您收到了错误,因为 about 未定义。它不应该是一个字符串?
<li><a href="#" class="decorNavi" onclick ="xmlRequest('about');" >ABOUT</a></li>
答案 2 :(得分:0)
你混淆了它们的变量和字符串represantations,这是一个更正的版本
<li><a href="#" class="decorNavi" onclick ="xmlRequest('about')" >ABOUT</a></li>
所以现在你传递一个字符串作为参数
function xmlRequest(target){
var targetClick;
//here you say the string argument now is called targetClick
targetClick = target;
if (window.XMLHttpRequest) {
xmlRequest = new XMLHttpRequest();
}
else{
xmlRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
//in this line you concatinate the variable with another string, result is a string so you dont need to quote the variable, this wouldnt work
xmlRequest.open("GET", targetClick+".html?="+Math.random() , true);
xmlRequest.onreadystatechange = function(){
if (xmlRequest.readyState == 4 && xmlRequest.status ==200) {
document.getElementById("midContainer").innerHTML = xmlRequest.responseText;
}
}
xmlRequest.send();
}
你需要在网络服务器上运行它,当使用“file://”protocoll你会得到一个交叉来源错误,另外url需要在同一个主机上
答案 3 :(得分:0)
targetClick
现在是变量,它不是字符串所以你应该做
xmlRequest.open("GET", targetClick+".html?="+Math.random() , true);
//---should be without quotes--^
而不是
xmlRequest.open("GET", 'targetClick'+".html?="+Math.random() , true);
答案 4 :(得分:0)
您无法使用XmlHttpRequest加载本地文件。将这些文件放在本地Web服务器中。浏览器不允许这样做,因为使用这种方式,远程站点可以访问您的本地文件,这是不允许的。
答案 5 :(得分:0)
您是否定义了约会对象?或者你想要给这样的字符串:
<li><a href="#" class="decorNavi" onclick ="xmlRequest('about')" >ABOUT</a></li>
请注意使用''而不是xmlRequest(about)调用xmlRequest('about')。