我在我的应用程序中使用Ajax。它在所有浏览器中都运行良好,但在任何IE版本中都没有。这是我写的代码,请看看我告诉我哪里错了。这是代码:
<script type="text/javascript">
function loadXMLDoc(str) {
document.getElementById('spinner').style.display = "block";
if (str == "") {
document.getElementById("pickZone").innerHTML = "";
document.getElementById('spinner').style.display = "none";
return;
}
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {
xmlhttp = false;
}
}
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById('spinner').style.display = "none";
document.getElementById("pickZone").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET", "getPickZone.jsp?q=" + str, true);
xmlhttp.send();
}
</script>
答案 0 :(得分:5)
如果你不反对使用jQuery,你可以使用:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
function loadXMLDoc(str) {
$('#spinner').css({display:"block"});
$('#pickZone').html('');
if (str != '') {
$.ajax({
type: "GET",
url: "getPickZone.jsp",
data: {q:str},
success: function(xml) {
$('#spinner').css({display:"none"});
$('#pickZone').html(xml);
}
});
}
}
</script>
它可能会稍微清理一下并解决您的交叉兼容性问题。
答案 1 :(得分:0)
使用xmlhttp.send(null)
代替xmlhttp.send()
并且更好地使用
xmlhttp = new ActiveXObject("MsXML2.XMLHTTP");
我们也有
MsXML[i] i = 1,2,3,4,5,..