Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: Quesito DOM

  1. #1

    Quesito DOM

    Salve gente,
    Non sono sicuro che si possa fare, ma qualcuno di voi magari lo sa e può aiutarmi.. Allora la domanda è questa, avendo il seguente codice:

    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
    <html>
    <head>
    	<script type="text/javascript">
    		function Oggetto(width, height) {
    			var div = document.createElement('div');
    			div.style.width = width + "px";
    			div.style.height = height + "px";
    			div.style.backgroundColor = "#cccccc";
    		}
    	</script>
    </head>
    <body>
    	<div id="qui">
    		<script type="text/javascript">
    			oggetto = new Oggetto(200, 100);
    		</script>
    	</div>
    </body>
    </html>
    Vorrei che l'elemento che creo con il DOM nell'oggetto "Oggetto" lo inserisca li dove ho richiamato l'oggetto (nel div "qui" in pratica). Come posso fare?

    Grazie mille! ianaz

  2. #2
    io farei cosi'

    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
    <html>
    <head>
        <script type="text/javascript">
            function Oggetto(width, height) {
                this.div = document.createElement('div');
                this.div.style.width = width + "px";
                this.div.style.height = height + "px";
                this.div.style.backgroundColor = "#cccccc";
                
            }
    
        window.onload=function()
        {
                oggetto = new Oggetto(200, 100)
                document.getElementById("qui").appendChild(oggetto.div);
        }
        </script>
    </head>
    <body>
        <div id="qui">
            
        </div>
    
                
    </body>
    </html>

  3. #3
    Grazie, così funzionerebbe, ma non c'è un modo per fare che lo inserisca direttamente nel div "qui" appena io faccia "new Oggetto(...)"?

    Grazie ancora, ianaz

  4. #4
    Certo, puoi usare appendChild direttamente della funzione Oggetto. Ma devi essere sicuro che il div "qui" sia stato creato. Quindi hai due possibilita'

    1 - chiami New Oggetto dentro un tag <script> che creerai dopo aver creato in <div> "qui"
    2 - Ma piu' elegantemente chiamerai new Oggetto nell'onload. Che viene sicuramente chiamata quando tutto il documento e' stato creato.

  5. #5
    Ma se io non conoscessi l'esistenza del div "qui" e volessi solo che ciò che creo nell'Oggetto venga inserito nel div dove è contenuto lo script "new Oggetto(...)" (in questo caso nel div "qui")? Senza usare document.write.. È possibile?

    Grazie, ianaz

  6. #6
    Guarda, per esperienza so che per tutti i quesiti informatici c'e' quasi sempre soluzione o almeno un workaround.

    Pero' cosi' su due piedi direi che non mi viene in mente nessuna soluzione. Per curiosita' faccio comunque qualche ricerca e se trovo qualcosa lo posto.

    Nell'attesa vediamo cosa ne pensano gli altri forumisti

  7. #7
    Originariamente inviato da raven74
    Guarda, per esperienza so che per tutti i quesiti informatici c'e' quasi sempre soluzione o almeno un workaround.

    Pero' cosi' su due piedi direi che non mi viene in mente nessuna soluzione. Per curiosita' faccio comunque qualche ricerca e se trovo qualcosa lo posto.

    Nell'attesa vediamo cosa ne pensano gli altri forumisti
    Perfetto, grazie mille, davvero!

  8. #8
    Prova questo ad esempio. Fa uso dell'innerHTML che non e' DOM ma e' ben supportato

    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
    <html>
    <head>
        <script type="text/javascript">
            function Oggetto(width, height) {
                this.container = document.createElement('div');
                this.div = document.createElement('div');
                this.div.style.width = width + "px";
                this.div.style.height = height + "px";
                this.div.style.backgroundColor = "#cccccc";
                this.container.appendChild(this.div);
                
                
            }
            
            Oggetto.prototype.toString = function()
            {
                return this.container.innerHTML;
            }
        
        </script>
    </head>
    <body>
        <div id="qui">
            <script>
            document.writeln(new Oggetto(100,100));
            </script>
        </div>
    
                
    </body>
    </html>

  9. #9
    Si con il document.write è facile.. basterebbe fare cosi..

    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
    <html>
    <head>
        <script type="text/javascript">
            function Oggetto(width, height) {
                this.container = document.createElement('div');
    
                this.div = document.createElement('div');
                this.div.style.width = width + "px";
                this.div.style.height = height + "px";
                this.div.style.backgroundColor = "#cccccc";
    
                this.container.appendChild(this.div);
    
                document.write(this.container.innerHTML);
            }    
        </script>
    </head>
    <body>
        <div id="qui">
            <script>
                    new Oggetto(100,100);
            </script>
        </div>
    
                
    </body>
    </html>
    Proverò a vedere se riesco a far funzionare il tutto con il document.write (c'è dietro una storia "losca" per la quale il document.write non va bene..).

    Grazie mille! ianaz

  10. #10
    Se proprio non vuoi usare getElementById io direi di provare a parsare i commenti.
    Mi spiego:
    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
    <html>
    <head>
    </head>
    <body>
        <div>
           
        </div>      
    </body>
    </html>
    Uno script in head, al window.onload si dovrebbe occupare di leggere i commenti e appendere al parentNode di ogni commento un oggetto.
    Ora non posso scriverlo, cmq credo che oggi pomeriggio o al limite sul tardi dovrei rientare

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 © 2024 vBulletin Solutions, Inc. All rights reserved.