代码1:当我点击“点击这里”时,它应该
div
用“id = adiv”隐藏,当我再次点击时,它会再次显示。代码2和3:ajax代码(代码2)属于代码3。但不属于代码1!此代码每 1 秒刷新一次 php 页面。
为什么在页面中加载 ajax 代码(代码 2 和 3)后,“代码 1”停止工作?当我单击“单击此处”时,它什么也不做。
但在 ajax 加载之前,代码 1 运行良好。
代码 2 和 3 效果很好,我对它们没有任何问题。唯一的问题是代码 1。
编辑:当我调试此页面时,它向我显示以下行:“hideshow(document.getElementById('adiv'))”(在代码 1 中),此错误:“未捕获的 ReferenceError:hideshow 未定义(匿名函数)”。
但我真的不明白为什么我有这个问题?我需要做什么来解决这个问题?
1)脚本:
<a href="javascript:hideshow(document.getElementById('adiv'))">Click here</a>
<script type="text/javascript">
function hideshow(which){
if (!document.getElementById) { return; }
if (which.style.display=="block") { which.style.display="none"; }
else { which.style.display="block"; }
}
</script>
<div id="adiv" style="font:24px bold; display: block">Now you see me</div>
2)ajax代码:
<script type="text/javascript">
function refresh(name, url, info, info_1, info_2, type)
{
if (type == "send") {
document.getElementById("send_"+name).innerHTML = info; // just show the txt that send
Input(name);
if (info == "") {
document.getElementById(name).innerHTML="";
return;
}
}
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else { // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
var xhr = new XMLHttpRequest();
var params = "c=<?php echo $_GET["c"]; ?>&info="+info+"&info_1="+info_1+"&info_2="+info_2;
xhr.open("POST",url,true);
xhr.onreadystatechange = function() {
if( this.readyState == 4 && this.status == 200) {
document.getElementById(name).innerHTML = this.responseText;
}
};
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.setRequestHeader("Content-length", params.length);
xhr.setRequestHeader("Connection", "close");
xhr.send(params);
return false;
}
</script>
3)播放ajax代码的代码:
<script type="text/javascript">
setInterval("refresh('aaa', 'refresh.php', '', '', '', 'refresh')", "1000");
</script>