Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    aggiornare <div> con DOM

    ciao, devo aggiornare (non aggiungere) il contenuto di un <div> da js.

    ora uso:
    document.getElementById(div).innerHTML = text;

    ma ho letto che è meglio usare il dom xml di js, ma questo codice mi aggiunge testo senza sostituire il vecchio:
    document.getElementById(div).appendChild(document. createTextNode(text));

    è corretto prima di tutto?
    e come fare?

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    leggi replaceChild in questa pagina dello speciale DOM
    http://pro.html.it/articoli/id_228/i...pag_3/pag.html

    x esempio
    codice:
    <script language="JavaScript" type="text/javascript">
    <!--
    window.onload=function(){
    	var el=document.getElementById('box')
    	el.replaceChild(document.createTextNode('testo'),el.childNodes[0])
    }
    //-->
    </script>
    dove il div e'
    <div id="box"> </div>

    occhio ad una particolarita': il div non puo' essere vuoto, deve contenere almeno uno spazio (o x es. l' entita' uNBreakable SPace & n b s p ; ), che verra' considerato primo figlio del nodo e quindi sostituito correttamente,
    altrimenti si genera un errore

    con innerHTML il problema non si pone

    parere personale: quando preferire questo approccio all' innerHTML?
    - quando il resto degli script coinvolti gia' si appoggia fortemente al DOM ed ai suoi metodi
    - quando si scripta guardando + in prospettiva futura che passata:
    innerHTML e' uno strappo alla regola che de facto viene contemplato nei browser moderni, potrebbe non esserlo nei futuri,
    ma allo stesso tempo parecchio antico, giaceva sopito gia' in IE4

    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    la discussione mi interessa, essendomi imbattuto in un problema con tag Object:

    In particolare, sto progettando un sistema di preview di file (immagini e filmati flash), ora con le immagini non ho problemi:

    recupero il tag img con getElementsByTagName('img') e modifico la proprietà src ed il gioco è fatto.

    Con il filmato flash invece la cosa non funziona (bene).
    Se uso innerHTML mi va in FireFox, mentre in IE mi ritorna un errore di Runtime sconosciuto. Allora avevo pensato di fare tutto via DOM... ma mi sono un po' perso:

    codice:
    <object style="display: none;" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="100%" height="100%"> 
    </object>
    Da una funzione, recupero il tag object e quindi:

    codice:
    objectplaceholder = placeholder.getElementsByTagName('object')[0];
    		objectplaceholder.style.display = "none";
    		paramlist = objectplaceholder.getElementsByTagName('param');
    		for (var i=0; i < paramlist.length; i++) {
    		  objectplaceholder.removeChild(paramlist[i]);
    		}
    		my_param = document.createElement("param");
    		my_param.name="movie"; my_param.value="/testsection/files/"+file;
    		objectplaceholder.appendChild(my_param);
    		default_param = document.createElement("param");
    		default_param.name="quality"; default_param.value="high";
    		objectplaceholder.appendChild(default_param);
    		objectplaceholder.style.display = "block";
    Ma non va
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  4. #4
    grazie, è in prospettiva di un'evoluzione futura che mi porto avanti.

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.