Il codice che segue non funziona con i "nuovi" browser, quelli che trattano l'oggetto XMLHttpRequest in maniera nativa (IE7, FF 2.0, OP 9.0). Qualcuno può testare se capita solo a me?
libAjaxUtil.js:
codice:
function makeXMLHttpRequest() {
var request = undefined;
if (window.XMLHttpRequest) {
request = new XMLHttpRequest();
if (request.overrideMimeType) {
request.overrideMimeType("text/xml");
}
}
else {
if (window.ActiveXObject) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e) {}
}
}
}
return request;
}
content.html:
codice:
<h2>AJAX funziona</h2>
index.html:
codice:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="it" dir="ltr" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript" src="js/libAjaxUtil.js"></script>
<title>AJAX</title>
</head>
<body>
<div id="content">Non posso utilizzare AJAX</div>
<div class="test">TEST</div>
<script type="text/javascript">
<!--
function ajaxCallback() {
try {
if (xmlHttpRequest.readystate == 4) {
if (xmlHttpRequest.status == 200) {
var text = xmlHttpRequest.responseText;
var doc = xmlHttpRequest.responseXML;
document.getElementById('content').innerHTML = text;
}
else {
if (xmlHttpRequest.status == 404)
{ alert('404: Not Found'); }
else
if (xmlHttpRequest.status == 500)
{ alert('500: Internal Server Error'); }
else
{ alert(xmlHttpRequest.status + ': ' + xmlHttpRequest.statusText); }
}
}
else {
// In esecuzione
}
}
catch(e) {
alert('Errore in callback function: ' + e);
}
}
var xmlHttpRequest = makeXMLHttpRequest();
if (!xmlHttpRequest) {
alert('Non è possibile utilizzare AJAX');
}
else {
xmlHttpRequest.onreadystatechange = ajaxCallback;
xmlHttpRequest.open('GET', 'content.html', true);
xmlHttpRequest.send(null);
}
//-->
</script>
</body>
</html>
Grazie per l'aiuto...