我有两个单独的链接调用相同的功能。它们用于将不同的外部html doc加载到主体的主体中。他们自己正常工作。但当一个文档加载时,另一个文档拒绝。男人有什么问题?
<li>
<a href="#" class="decorNavi" onclick ="xmlRequest('about')" >ABOUT</a>
</li>
<li>
<a href="#" class="decorNavi" onclick ="xmlRequest('contactus')" >CONTACT US</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 :(得分:5)
你正在覆盖你的函数中的函数声明:
function xmlRequest(target) {
和
xmlRequest = new XMLHttpRequest();
它会触发一次,然后用xmlRequest替换该函数。将第二个命名为别的。
答案 1 :(得分:2)
正如Mike Robinson所说,你正在覆盖你的功能。为您的功能使用其他名称。就这么简单。
function xmlRequest(targetClick) {
var xmlRequest; // xmlRequest is no more a global.
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();
}
答案 2 :(得分:1)
您的函数“xmlRequest”的名称和在其中定义的对象是相同的。将其改为别的东西。