Visualizzazione dei risultati da 1 a 3 su 3

Discussione: JS non funziona su XP?

  1. #1

    JS non funziona su XP?

    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);
    }

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Prova così e guarda se appare un alert

    codice:
    ...
    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;
       }
    
       if (ajax.status == 0) {
          alert("Devo ricordarmi di visualizzare la pagina servita da un webserver con protocollo http, non file:///");
       }
       
       return "";
    }
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    Hai ragione! Non ci avevo pensato Modificherò getPageContent appena possibile per usare http.
    Oggi quello che usava IE ha detto che con Firefox gli funziona...
    Però credo che ci sia un altro problemino... Se il problema fosse solo del protocollo http, come mai non viene visualizzato "Caricamento..." ma resta l'errore? Sembra che il window.onload non venga eseguito

    Grazie,
    Andrea.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.