PDA

View Full Version : script works but gives script error in IE


Keltoi
04-09-2008, 11:19 AM
I've been using a simple script for a while now and whilst it works fine, I get a script error in IE. Firebug in FF doesn't report any issues.

Any ideas as to why?var xmlHttp

function loadData(page, query, ele) {
var element = document.getElementById(ele);

if (page.length==0){
element.innerHTML=''
return
}xmlHttp=GetXmlHttpObject()
if (xmlHttp==null){
element.innerHTML='Browser does not support HTTP Request'
return
}

element.innerHTML = 'Loading page...';
//var url=page
var url='https://secure.webitpr.com/test.htm'
url = url+'?'+query
url = url+'&uniqid='+Math.random()
xmlHttp.open("GET", url);
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
element.innerHTML = xmlHttp.responseText;
contentSize();
} else {if (xmlHttp.status >= 400){element.innerHTML = 'There was a problem loading the content...<br />Error mesage: ' + xmlHttp.statusText}}
}
xmlHttp.send(null);
}


function GetXmlHttpObject(){
var objXMLHttp=null
if (window.XMLHttpRequest){
objXMLHttp=new XMLHttpRequest()
}else if (window.ActiveXObject){
objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
}
return objXMLHttp
} Many thanks for any suggestions as to this little quirk (and hopfully a solution)

A1ien51
04-09-2008, 03:03 PM
And what does the script error say?

Eric

Keltoi
04-09-2008, 03:21 PM
typically un-useful:Line: 25
Char: 17
Error: Unspecified error.
Code: 0
URL: http://someUR...
Seems to be to do with this query {if (xmlHttp.status >= 400)...
test script:<script language="javascript" type="text/javascript">
var xmlHttp

function loadData(page, query, ele) {
var element = document.getElementById(ele);

if (page.length==0){
element.innerHTML=''
return
}xmlHttp=GetXmlHttpObject()
if (xmlHttp==null){
element.innerHTML='Browser does not support HTTP Request'
return
}

element.innerHTML = 'Loading page...';
var url=page
url = url+'?'+query
url = url+'&uniqid='+Math.random()
xmlHttp.open("GET", url);
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
element.innerHTML = xmlHttp.responseText;
} else {if (xmlHttp.status >= 400){element.innerHTML = 'There was a problem loading the content...<br />Error mesage: ' + xmlHttp.statusText}}
}
xmlHttp.send(null);
}


function GetXmlHttpObject(){
var objXMLHttp=null
if (window.XMLHttpRequest){
objXMLHttp=new XMLHttpRequest()
}else if (window.ActiveXObject){
objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
}
return objXMLHttp
}
</script>
<a href="#" onclick="loadData('somePage.asp', 'blar=blar', 'content')">load page</a>
<div id="content"></div>

A1ien51
04-10-2008, 04:31 AM
Oh, you are checking for 400, you also have to be checking for the readyState of 4

Eric

Keltoi
04-10-2008, 10:26 AM
so
xmlHttp.readyState == 4 && xmlHttp.status >= 400

That was quick and simple... Thanks loads, has been bugging me for ages :thumbsup: