[英]there's a Javascript/Ajax error message in Internet Explorer 8! by the way this is not the shocking part
function a (){
var b = null;
if(window.XMLHttpRequest) b = new XMLHttpRequest();
else if(window.ActiveXObject) b = new ActiveXObject("Microsoft.XMLHTTP");
if(!b) b = new ActiveXObject("msxml2.XMLHTTP");
return b;
}
var b=a();
function c(){
var u = "ajax3_php.php?w="+ parseInt(Math.random()*88888);
b.onreadystatechange = function (){
if(b.status == 200 && b.readyState == 4){
document.getElementById("divid").innerHTML = b.responseText;
}
}
b.open("get", u, true);
b.send();
}
在目標頁面“ ajax3_php.php”上:
<?php
echo "OK";
?>
並在“分開” ID上
<div id =“ divid”>測試</ div>
錯誤消息是:
Message: Unspecified error.
Line: 20
Char: 3
Code: 0
URI: http://localhost/lat1/ajax/ajax3.php
令人震驚的是,這是第20行:
if(b.status == 200 && b.readyState == 4){
怎么了
僅供參考:螢火蟲什么也沒說。
這段代碼似乎可以解決問題。
function a()
{
var b = null;
if(window.XMLHttpRequest)
{
b = new XMLHttpRequest();
}else if(window.ActiveXObject)
{
b = new ActiveXObject("Microsoft.XMLHTTP");
}
if(!b)
{
b = new ActiveXObject("msxml2.XMLHTTP");
}
return b;
}
var b = a();
function c()
{
var u = "ajax3_php.php?w="+ parseInt(Math.random()*88888, 10);
b.open("get", u, true);
b.onreadystatechange = function ()
{
if(b.readyState === 4)
{
if(b.status === 200)
{
if(b.responseText)
{
document.getElementById("divid").innerHTML = b.responseText;
}
}
}
};
b.send();
}
c();
對於為何突然彈出錯誤,我沒有靈丹妙葯的答案,但是當readyState
不是4
時,對b.status
的調用將b.status
錯誤。 但是,該特定錯誤是我最近通過innerHTML
向IE 8中的元素發送空字符串時遇到的一種錯誤(但錯誤類型不同)(我懷疑您的responseText
為空,從而導致該錯誤)。
我自由地為您修復了該代碼(以及其他一些修飾)。 IE 7-8,Quirks或無錯誤。
我希望這可以幫助你。
-馬特
編輯:我偶然發現了這個MSDN帖子。 奇怪的是,他們的示例代碼像我一樣使用嵌套的if塊,但沒有解釋。 我會進一步調查。
鏈接: http : //msdn.microsoft.com/en-us/library/dd576252%28v=vs.85%29.aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.