Ciao a tutti.
Ho un problema con JS su XP. Sto costruendo un sito e ad alcuni miei amici non funziona. L'unica cosa in comune è che usano XP. Uno usa Firefox e gli esce l'errore di javascript non abilitato che ho inserito ma con IE va bene, mentre l'altro usa IE e gli esce lo stesso errore. Il problema è che hanno Javascript abilitato!
Questo è il codice:
codice:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Diario della prima C</title>
<link rel="stylesheet" type="text/css" media="screen" href="style.css" />
<script type="text/javascript" src="js/ajax.js"></script>
<script type="text/javascript" src="js/process.js"></script>
<script type="text/javascript">
window.onload = function() {
document.getElementById("cnt-txt").innerHTML = "Caricamento...";
loadDate("cnt-txt", "content-text-cnt");
};
</script>
</head>
<body>
<div class="content">
<div id="cnt-txt" class="content-text">
Errore! :(
<div class="content-text-cnt">
JavaScript non è attivo!
</div>
</div>
</div>
<div class="arrows">
[img]img/arrow_l.png[/img]
[img]img/arrow_r.png[/img]
</div>
</body>
</html>
Resta l'errore di js non attivo e non esce "Caricamento...". Altre persone con XP + IE mi riportano che funziona... io non ci capisco più nulla.
A loro funzionano perfettamente siti come Facebook molto ricchi di JS, perchè non gli funziona un banalissimo getElementById?
Grazie in anticipo a chi mi aiuterà,
Andrea.
(Giusto per completezza, riporto ajax.js e process.js: non sono il massimo, li ho scritto di fretta, quindi perdonate il codice traballante
)
ajax.js:
codice:
// Assegna HTTPXmlRequest
function getXMLHttpRequest() {
// Prende l'User Agent
var userAgent = navigator.userAgent.toUpperCase();
// Supporto nativo?
if(typeof(XMLHttpRequest) === "function" || typeof(XMLHttpRequest) === "object") {
return new XMLHttpRequest();
}
// IE è particolare, e IE4 non supporta HTTPXmlRequest
if(window.ActiveXObject && userAgent.indexOf("MSIE 4") < 0) {
// IE6 usa un nome differente per l'oggetto ActiveX
if(browserUtente.indexOf("MSIE 5") < 0) {
return new ActiveXObject("Msxml2.XMLHTTP");
}
// IE5 e 5.5 usano lo stesso nome
return new ActiveXObject("Microsoft.XMLHTTP");
}
}
// Prende il contenuto di una pagina
// Ritorna il contenuto in caso di successo
// Stringa nulla se fallisce
function getPageContent(url) {
var ajax = getXMLHttpRequest();
ajax.open("get", url, false); // Richiesta sincrona
ajax.setRequestHeader("Connection", "Close");
ajax.send();
// Controlliamo se l'operazione è riuscita
if(ajax.status == 200) {
return ajax.responseText;
}
return "";
}
process.js:
codice:
var curDate = new Date();
curDate.setDate(curDate.getDate() + 1);
var weekDay = ["Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato"];
var monthName =["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"];
// Fa il padding con zero per raggiungere due cifre e ritorna stringa
// n: il numero
function padTwo(n) {
n = n + ""; //Cast a stringa
if(n.length < 2) {
return "0" + n;
}
return n;
}
// Carica la data curDate
// cnt_id: id in cui viene caricata
// subid: class della div in cui c'è il testo
function loadDate(cnt_id, subid) {
var date_txt = padTwo(curDate.getDate()) + "-" + padTwo(curDate.getMonth() + 1) + "-" + curDate.getFullYear();
var date_str = weekDay[curDate.getDay()] + " " + curDate.getDate() + " " + monthName[curDate.getMonth()] + " " + curDate.getFullYear();
document.getElementById(cnt_id).innerHTML = date_str +
"<div class=\"" + subid + "\">" +
getPageContent("data/" + date_txt + ".txt") +
"</div>";
}
// Carica il giorno precendente
// cnt_id: id in cui caricare
// subid: class della div in cui c'è il testo
function prevDate(cnt_id, subid) {
curDate.setDate(curDate.getDate() - 1);
loadDate(cnt_id, subid);
}
// Carica il giorno successivo
// cnt_id: id in cui caricare
// subid: class della div in cui c'è il testo
function nextDate(cnt_id, subid) {
curDate.setDate(curDate.getDate() + 1);
loadDate(cnt_id, subid);
}