Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Problemini da novizio funzioni

    Salve, sono su mozilla 2.qualcosa

    Codice PHP:
    if (document.getElementById) {
        
    areaLavoro document.getElementById('areaLavoro');
        } else {
        
    alert('La funzione non funzia');
    }

    lunghezza areaLavoro.getAttribute('width');
    altezza areaLavoro.getAttribute('height');

    parag document.createElement('p');
    testoParagrafo document.createTextNode('Testo testo testo testo');

    paragrafo parag.appendChild(testoParagrafo);

    function 
    scrivi(nodotesto) {
        
    nodo.appendChild(testo);
    }

    areaLavoro.onload scrivi(areaLavoroparagrafo); 
    Sto eseguendo alcuni test.. allora la consolle errori dice che:
    areaLavoro has no properties
    E comunque nel div "areaLavoro" non succede nulla.. e non capisco perchè..
    Lo script è agganciato da un file esterno..

    teoricamente al caricamento del div areaLavoro mi dovrei trovare la scritta 'Testo testo testo testo' appesa.. o sbaglio?? anzi dove sbaglio???

    Questa volta, più che un voto.. è favoreggiamento.

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    ci sono molti errori

    un div non ha un gestore evento onload,
    lo hanno le immagini e l' oggetto window


    window.onload = scrivi;
    o, se volessi passare argomenti alla funzione,
    window.onload = function(){scrivi(areaLavoro, paragrafo);}

    ma comunque non puoi definire runtime questa roba
    if (document.getElementById) {
    areaLavoro = document.getElementById('areaLavoro');
    } else {
    alert('La funzione non funzia');
    }

    lunghezza = areaLavoro.getAttribute('width');
    altezza = areaLavoro.getAttribute('height');

    devi farlo quando sei certo siano definiti nell' xhtml, quindi in una funzione richiamata dall' onload

    inizio a buttare giu qualcosa
    codice:
    window.onload=function(){scrivi('areaLavoro')}
    
    function scrivi(id){
      if(document.getElementById) {
          var elemento=document.getElementById(id);
      } else {
        alert('La funzione non funzia');
        return;
      }
    
      // questi due poi vediamoli a parte, com e' l' xhtml di questo elemento?
      // in esso sono fisicamente definiti width e height come attributi?
      var lunghezza = elemento.getAttribute('width');
      var altezza = elemento.getAttribute('height');
    
      var parag = document.createElement('p');
      var testoParagrafo = document.createTextNode('Testo testo testo testo');
      parag.appendChild(testoParagrafo);
      elemento.appendChild(parag);
    }

  3. #3
    Ciao e grazie per la risposta.. intanto ecco la pagina:
    Codice PHP:
    <!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>

    <
    meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <
    title></title>

    <
    link rel="stylesheet" style="text/css" media="all" href="blackbrain.css" />
    <
    script type="text/javascript" src="shop.js"></script>
    </head>

    <body>
    <div id="pagina">

        <div id="testata">
            <div id="logo"></div> 
        </div> 

        <div id="corpo">

            <div id="menu">
                <ul>
                    [*][url="index.htm"]Homepage[/url]
                    [*][url="artists.htm"]Artists[/url]
                    [*][url="shop.htm"]Shop/Download[/url]
                    [*][url="subscribe.htm"]Subscribe[/url]
                [/list]
            </div> 

            <div id="contenitore">
                <div id="areaLavoro">
                boh..
                    
                </div>
            </div> 

        </div> 
        <div id="footer"></div> 
    </div> 
    </body>
    </html> 
    Il div "areaLavoro" ha associato queste regole nel CSS esterno:
    Codice PHP:
    /******area di lavoro*****/
    div#areaLavoro {
      
    margin0 auto;
      
    width600px;
      
    height400px;
      
    background#fff;
      
    border1px solid #c1c1c1;

    Allora prima cosa..
    window.onload = scrivi;

    qui richiamo la funzione scrivi() ma non ci vogliono le parentesi tonde come per altri linguaggi??

    secondo..
    non posso definire delle operazioni in runtime? devo sempre avere un'evento che richiama una funzione e poi dalla funzione richiamo un'altra funzione e via dicendo? :master: non è scomoda la cosa..

    brevemente, volevo creare una zona di lavoro "areaLavoro" che sfrutta javascript e ajax per interagire in modo dinamico e immediato con l'utente.. tipo le cartine di gmaps solo per altri scopi.. Come puoi vedere sono ancora ai prrimi tentativi quindi non prendere paura.. Se hai qualche dritta ben venga..
    Questa volta, più che un voto.. è favoreggiamento.

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    Originariamente inviato da Al_katraz984
    Allora prima cosa..
    window.onload = scrivi;

    qui richiamo la funzione scrivi() ma non ci vogliono le parentesi tonde come per altri linguaggi??
    non nel caso di gestori eventi, altrimenti la funzione richiamata viene eseguita istantaneamente e non al verificarsi dell' evento
    secondo..
    non posso definire delle operazioni in runtime? devo sempre avere un'evento che richiama una funzione e poi dalla funzione richiamo un'altra funzione e via dicendo? :master: non è scomoda la cosa..
    non e' proibito, ma se fai riferimento ad elementi dell' xhtml che non ancora sono stati definiti otterrai errori, concettualmente questo non dovrebbe fare una piega

    per questo ci si appoggia comunemente al gestore evento onload che si attiva al caricamento completo del documento (immagini incluse), o a gestori definiti dallo sviluppatore, in genere chiamati onContent, onDOMLoad o simili, che si attivano al caricamento completo della sola alberatura XHTML

    l' alternativa e' posizionare i blocchi di script prima della chiusura del body ma, primo, non e' ben chiaro per chi legge il codice, secondo, c'e' ancora possibilita' che lo script fallisca perche' il body effettivamente non e' ancora chiuso

    ciao, buon proseguimento

  5. #5
    Ciao, ho riscritto un pò il codice..
    Codice PHP:
    parag document.createElement('p');
    testoParagrafo document.createTextNode('Testo testo testo testo');
    paragrafo parag.appendChild(testoParagrafo);

    window.onload check;

    function 
    check() {
        if (
    document.getElementById) {
            
    areaLavoro document.getElementById('areaLavoro');
            
    scrivi(areaLavoroparagrafo);
            } else {
            
    alert('La funzione non funzia');
        }
    }

    function 
    scrivi(nodotesto) {
        
    nodo.appendChild(testo);
    }

    lunghezza areaLavoro.getAttribute('width');
    altezza areaLavoro.getAttribute('height'); 
    Allora, cosi funziona.. anche se non sò se l'approccio è corretto.. una cosetta soltanto, la varaiabile areaLavoro resta visibile solo all'interno della funzione check() come mai?? dovrebbe essere "globale" scritta in quel modo o sbaglio?
    Questa volta, più che un voto.. è favoreggiamento.

  6. #6
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    areaLavoro a rigor di logica diventa globale,
    comunque tu runtime fai ancora questo:
    lunghezza = areaLavoro.getAttribute('width');
    altezza = areaLavoro.getAttribute('height');
    che come abbiamo detto sopra e' sbagliato

    poi, occhio a IE che ha un DOM fatto a modo suo:
    areaLavoro, solo con questo browser, puo' essere gia' un riferimento corretto all' elemento con id="areaLavoro", mentre per gli altri browser serve un document.getElementById('areaLavoro')

    quello che sto suggerendo e' di non dare come nome della variabile che rappresenta un elemento lo stesso nome o id dell' elemento

  7. #7
    Allora forse sono io che nun ne esco..

    Codice PHP:
    var parag document.createElement('p');
    var 
    testoParagrafo document.createTextNode('Testo testo testo testo');
    var 
    paragrafo parag.appendChild(testoParagrafo);

    window.onLoad check;

    function 
    check() {
        if (
    document.getElementById) {
            
    areaDesktop document.getElementById('areaLavoro');
            } else {
            
    alert('La funzione non funzia');
        }
    }

    function 
    scrivi(nodotesto) {
        
    nodo.appendChild(testo);
    }

    areaDesktop.onMouseover = function() { scrivi(areaDesktopparagrafo); }; 
    Mi dice che areaDesktop non è definita.. quando a mio avviso sulla funzione check definisco
    areaDesktop = document.getElementById('areaLavoro');

    caso mai mi puoi indicare un buon sito specializzato x javascript.. anche in inglese.. qui su html ho già letto..
    Questa volta, più che un voto.. è favoreggiamento.

  8. #8
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    ancora una volta:
    areaDesktop.onMouseover = function() { scrivi(areaDesktop, paragrafo); };

    areaDesktop al momento della valutazione non e' niente

  9. #9
    Siccome mi aspettavo la tua risposta.. ho provatp anche cosi:
    Codice PHP:
    function check() {
        if (
    document.getElementById) {
            
    areaDesktop document.getElementById('areaLavoro');
            
    areaDesktop.onMouseover = function() { scrivi(areaDesktopparagrafo); };
            } else {
            
    alert('La funzione non funzia');
        }

    ma anche in questo modo non funge..
    Questa volta, più che un voto.. è favoreggiamento.

  10. #10
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    onmouseover

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.