Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027

    assicurarsi di aver letto un file xml prima di mostrare la pagina

    ciao ragazzi sto impazzendo con questo problema:

    sto usando questa parte di codice per richiamare una funzione che legga dei dati da un file xml.

    codice:
    if (document.implementation && document.implementation.createDocument)
       {
       xmlDocument = document.implementation.createDocument("","",null)
       xmlDocument.onload=carica;
       xmlDocument.load('scheda3.xml');
       }
       else if (window.ActiveXObject)
          {
          xmlDocument = new ActiveXObject("Microsoft.XMLDOM")
          xmlDocument.onreadystatechange = IEGo();
          xmlDocument.load('scheda3.xml');
          }
    	
    	
    
    function IEGo() {
     if (xmlDocument.readyState == 4)
       carica();
    }
    Mi sembra di aver capito che per IE quel xmlDocument.readyState serva per capire se il file è stato scaricato del tutto prima di processarlo...

    Infatti in IE è tutto ok, mentre in firefox a volte viene mostrata la pagina bianca.

    Credo che sia dovuto al fatto che la funzione di parsing non abbia avuto il tempo di leggere il file e quindi di comporre la variabile che viene poi scritta sulla pagina.

    Quindi la domanda è quella in oggetto

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    a memoria mi sembra che manci un async nel primo ramo dell'if.

    codice:
    ...
     xmlDocument.onload=carica;
     xmlDocument.async=false;
    ...
    purtroppo non ho il codice sottomano, ma mi sembra sia questo.

    Vuoi aiutare la riforestazione responsabile?

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

  3. #3
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    grazie mille, mi sono un po' documentato, ma non ho capito se vale sia per mozilla che per IE...


    p.s.

    Il suddetto codice non funziona con opera, vedendo quel blocco if ci sono abbastanza elementi per capirne il motivo?


    grazie

  4. #4
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    ieri ho dato un occhio al codice che avevo scritto io. L'unica differenza rispetto al tuo sta in queste due righe:

    codice:
       xmlDocument.onload=carica;
       xmlDocument.load('scheda3.xml');
    Io le ho invertite, ma nn so se questo possa essere rilevante

    Inoltre nell'else al posto di questo

    codice:
         xmlDocument = new ActiveXObject("Microsoft.XMLDOM")
         xmlDocument.onreadystatechange = IEGo();
         xmlDocument.load('scheda3.xml');
    io ho scritto questo
    codice:
         xmlDocument = new ActiveXObject("Microsoft.XMLDOM")
         xmlDocument.async = false;
         xmlDocument.load('scheda3.xml');
         IEGo();
    spero che possa servirti in qualche modo

    Per quanto riguarda il discorso sulla compatibilità con i browser, ti consiglio di fare in generale un pò di debug
    (ad es. metti degli alert dentro / fuori il blocco if, controllo se l'oggetto è stato creato... e così via)


    Vuoi aiutare la riforestazione responsabile?

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

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.