我有以下代码:
<script type="text/javascript" language="javascript">
<!--
function getXMLHTTP() { //function to return the xml http object
var xmlhttp=false;
try{
xmlhttp=new XMLHttpRequest();
}
catch(e) {
try{
xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e){
try{
req = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e1){
xmlhttp=false;
}
}
}
return xmlhttp;
}
function wait1()
{
document.getElementById('comment').innerHTML="Please wait...";
}
function getComment(strURL) {
var req = getXMLHTTP();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
// only if "OK"
if (req.status == 200) {
document.getElementById('comment').innerHTML=req.responseText;
} else {
alert("There was a problem while using XMLHTTP:\n" + req.statusText);
}
}
}
req.open("GET", "comment_form.php", true);
req.send(null);
}
}
//-->
</script>
<div id="comment">
<form action="javascript:get(document.getElementById('comment'));wait1()" method="post" enctype="multipart/form-data" >
<input type="submit" name="Submit" value="Post Your Comment" />
</form>
</div>
我敢肯定,过去我曾经使用过同样的软件,但是现在看来似乎没有用。我认为那里有些混乱,但无法弄清楚。
如果能找到解决方案,我将不胜感激。
最佳答案
我发现以上代码中的一个错误是:getComment(strURL)函数接受一个参数,该参数从未使用过。应该将“ comment_form.php”替换为函数的参数。而且,由于该软件较软,因此我将strURL重命名为易于阅读和拼写的“ url”。
(我认为DIV是打开的,而不是关闭的,这是格式上的疏忽。wait1函数在这里也未使用。)
无需将已弃用的“语言”属性添加到SCRIPT标记,也无需将任何JS代码包装在HTML注释中。
function getXMLHTTP() {
var x = false;
try {
x = new XMLHttpRequest();
}
catch(e) {
try {
x = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(ex) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e1) {
x = false;
}
}
}
return x;
}
/* TODO: Where is this ever used? */
function wait1() {
document.getElementById('comment').innerHTML = "Please wait...";
}
function getComment(url) {
var req = getXMLHTTP();
if (!req) {
// Complain early, instead of nesting deeply
alert('Unable to set up the XHR object.');
return;
}
req.onreadystatechange = function() {
if (req.readyState == 4) {
// only if "OK"
if (req.status == 200) {
document.getElementById('comment').innerHTML = req.responseText;
} else {
alert("There was a problem while using XMLHTTP:\n" + req.statusText);
}
}
};
req.open("GET", url, true); // the "true" stands for "async", when is this not default?
req.send(null); // do not add any content (null); when is this not default?
}
我在代码中添加了一些问题。