Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di Neocron
    Registrato dal
    Jul 2002
    Messaggi
    524

    [Domanda definitiva] innerHtml, write();

    allora per accedere agli oggetti è facile, si usa un metodo crossbrowser. Mi servirebbero alcune conferme:

    a posto di innerhtml solo netscape usa open(); write() close(); ?

    altre possibili incompatibilità?

    con innerhtml potrei cancellare con una volta tutto il contenuto della tabella e sostituirlo con una nuovo. Con il metodo write, aggiungo un nuovo elemento ogni volta che scrivo, come potrei fare tramite questa funzione ad azzerare prima il contenuto e poi inserircene uno nuovo?

    Vi ringrazio infinitamente per l'attenzione.
    un grazio particolare a Mich_, Xinod e gli altri mod, per l'aiuto sulle precedenti domande.

  2. #2
    Utente di HTML.it L'avatar di Neocron
    Registrato dal
    Jul 2002
    Messaggi
    524
    questa è la funzione croobrowser di stampa, qualcuno potrebbe dirmi se non corro rischi?

    codice:
    function LayerWrite(_layer, _testo) { 
    if (document.layers) 
    with (document.layers[_layer].document) { 
    open(); 
    write(_testo); 
    close(); } 
    else if (document.getElementById) 
    document.getElementById(_layer).innerHTML+=_testo; 
    else _layer.innerHTML=_testo 
    }
    e... potreste perfezionarlo come gentilmente avevo chiesto sopra?


    rinnovo il mio ringraziamento.

  3. #3
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    sì, solo NN4 usa la sintassi document.write();document.close();
    (l' open mi sa che è fuori posto)

    x le incompatibilità vale quanto avevamo già detto,
    opera (versione <7) non lo supporta
    e cmq salti questo browser e qualsiasi altro non lo supportasse in maniera indolore con lo sniffing naturale di cui avevamo parlato
    (dal momento che non ci sono alternative che portino al risultato puoi solo far degradare senza errori)

    x la riscrittura della funzione ti invito a recuperare l' altra discussione, quella a cui eravamo giunti fa il suo dovere ed è + furba perchè sfrutta l' altra funzione (riutilizzabile in vari contesti) che ritorna l' accesso corretto via DOM

    document.write() (non sto parlando della sintassi NN4) non puoi richiamarlo a pagina già completamente renderizzata, altrimenti sovrascrivi tutto il documento
    non capisco come vorresti usarlo

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    633
    ciao,
    dai una letta a:
    http://pro.html.it/articoli/id_238/idcat_33/pro.html
    http://pro.html.it/articoli/id_238/i...pag_2/pag.html

    vediti anche il codice degli esempi:
    http://pro.html.it/esempio/dom/domLe...geroinner.html
    http://pro.html.it/esempio/dom/domLe...eggerow3c.html

    se poi ti interessa il dhtml,
    guardati un po' la libreria wedev:
    http://library.wedev.it/WDL/package/

    (un po' di sana pubblicità )

    ciauz
    Alcuni miei articoli in PRO.HTML.IT: JavaScript | DHTML | DOM
    Sviluppo : wedev | forum

  5. #5
    Utente di HTML.it L'avatar di Neocron
    Registrato dal
    Jul 2002
    Messaggi
    524
    Originariamente inviato da Xinod
    sì, solo NN4 usa la sintassi document.write();document.close();
    (l' open mi sa che è fuori posto)

    document.write() (non sto parlando della sintassi NN4) non puoi richiamarlo a pagina già completamente renderizzata, altrimenti sovrascrivi tutto il documento
    non capisco come vorresti usarlo
    Si, hai ragione nella funzione sopra riportata, è sbagliato il percorso. Avrei voluto usarla allo stesso modo di inneHtml, per mettere valori all'interno di una tabella identificata.


    Originariamente inviato da Xinod
    x la riscrittura della funzione ti invito a recuperare l' altra discussione, quella a cui eravamo giunti fa il suo dovere ed è + furba perchè sfrutta l' altra funzione (riutilizzabile in vari contesti) che ritorna l' accesso corretto via DOM
    Per gli interessati Argomento - Crossbrowser





    questa è la funzione riscritta che riscontra problemi con innerHtml:
    codice:
    function writer(area,testo){
     function idDom(id){ return (document.all)?document.all[id]:(document.layers)?document.layers[id]:document.getElementById(id) }
     (idDom(area).innerHTML)?  idDom(area).innerHTML=testo :   alert('incompatibile')
    }

    Ps: Standard grazie mille per i linkoni! ( li avevo già letti ;-) )

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    633
    codice:
     typeof(idDom(area).innerHTML) == "string" ? idDom(area).innerHTML=testo :   alert('incompatibile')
    non capisco però perchè utilizzi una funzione locale ad un'altra...
    ciauz
    Alcuni miei articoli in PRO.HTML.IT: JavaScript | DHTML | DOM
    Sviluppo : wedev | forum

  7. #7
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    già,
    così perdi tra l' altro la possibilità di riutilizzarla in altri contesti

    cmq con i browser con cui ho provato funzionerebbe come previsto

  8. #8
    Utente di HTML.it L'avatar di Neocron
    Registrato dal
    Jul 2002
    Messaggi
    524
    grazie infinite ad entrami... per la funzione nella funzione avete ragione

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.