Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di Igreo
    Registrato dal
    Jun 2004
    Messaggi
    1,114

    innerHTML mantenere formattazione

    Non riesco a far visualizzare la pagina attraverso la scritta con innerHTML.
    Nel particolare lo sfondo della tabella principale non si visualizza o richiede tutto il suo spazio e poi, soltanto oltre, inserisce il contenuto, oppure visualizza lo sfondo soltanto nel primo td... ho provato diverse soluzioni!

    Vi posto un codice d'esempio:
    codice:
    document.getElementById("cart").innerHTML="<TABLE width='360' style='height:380; background: url(sfondo_f.gif) no-repeat;'><TR><TD>";
      document.getElementById("cart").innerHTML+="<DIV style='height: 25; width: 360; display: none; cursor: pointer;'></DIV>";
      document.getElementById("cart").innerHTML+="<DIV id='15' style='display: inline;'><TABLE cellpadding='2' cellspacing='0'><TR><TD>[img]45.jpg[/img]</TD><TD>[img]44.jpg[/img]</TD></TR></TABLE></DIV>";
      document.getElementById("cart").innerHTML+="<DIV id='14' style='display: inline;'><TABLE cellpadding='2' cellspacing='0'><TR><TD>[img]42.jpg[/img]</TD><TD>[img]41.jpg[/img]</TD></TD></TR></TABLE></DIV>";
      document.getElementById("cart").innerHTML+="<DIV style='height: 25; width: 360; display: block; cursor: pointer;'></DIV>";
      document.getElementById("cart").innerHTML+="</TD></TR></TABLE>";
    Ho provato diverse soluzioni e questa è la peggiore.. cmq il problema rimane!


  2. #2
    Negli stili in linea mancano le unità di misura.

    style='height:380;

    style='height: 25; width: 360;

    devi specificare che sono pixel, px.

  3. #3
    Utente di HTML.it L'avatar di Igreo
    Registrato dal
    Jun 2004
    Messaggi
    1,114
    Originariamente inviato da lucavizzi
    Negli stili in linea mancano le unità di misura.

    style='height:380;

    style='height: 25; width: 360;

    devi specificare che sono pixel, px.
    Non credo sia questo il problema! ...

  4. #4
    Originariamente inviato da Igreo
    Non credo sia questo il problema! ...
    Io invece credo di sì, gli stili in linea che hai scritto vengono ignorati.

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Il codice che hai postato inserito direttamente nella pagina e non a posteriori tramite innerHTML funziona?
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  6. #6
    Utente di HTML.it L'avatar di Igreo
    Registrato dal
    Jun 2004
    Messaggi
    1,114
    ti dico di no.. vengono perfettamente visti! Il problema è che la scrittura con innerHTML+= da qualche problema.. e non capisco cosa fare per risolvere!
    Nel caso che ho postato.. prima si vede il table tutto intero alto 380 e poi a seguito i div (quindi oltre i 380)!!

  7. #7
    Non è possibile che una regola CSS senza unità di misura venga "perfettamente vista".

  8. #8
    Utente di HTML.it L'avatar di Igreo
    Registrato dal
    Jun 2004
    Messaggi
    1,114

    la questione è la seguente

    dopo diverse prove:

    1) Lo script funziona al di fuori dell'innerHTML.
    2) La mancanza della sigla px a seguito di width e height non pregiudica la normale visualizzazione (ma magari alcuni browser faranno difficoltà..!)
    3) Ho provato a mettere tutto lo script in un solo inerHTML, quindi senza innerHTML+=, e lo script visualizza correttamente la pagina! IL PROBLEMA è PERCHè? Non ricordo qualche regola che diceva che i table aperti vanno chiusi nello stesso innerHTML e non in un += ...tra l'altro chiamato nel frengente subito a seguire! Ho visto script che addirittura in questo modo aprivano <HTML> e lo chiudevano in un +="</HTML>"; ...

    Il problema può essere che io applico questa scritta da un pulsante per modificare parte della pagina.. magari se lo utilizzavo direttamente in lettura dal caricamento.. probabilmente funzionava, o no?!!?!?


  9. #9
    Utente di HTML.it L'avatar di Igreo
    Registrato dal
    Jun 2004
    Messaggi
    1,114
    UP

    La questione è la medesima: Come posso fare per non inserire tutto in un solo innerHTML, per facilitare la lettura del codice?


  10. #10
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    innerHTML non è una semplice proprietà, è un setter, il che vuol dire che quando tu gli assegni un valore il browser ci fa qualcosa (un po' come accade con document.cookie). In particolare, in questo caso il browser proverà a completare i tag che non si chiudono. Ecco perché non puoi assegnare un innerHTML a pezzi! Prova così, vedrai che funzionarà:

    codice:
    var tuaVariabile = "<TABLE width='360' style='height:380; background: url(sfondo_f.gif) no-repeat;'><TR><TD>";
    tuaVariabile += "<DIV style='height: 25; width: 360; display: none; cursor: pointer;'></DIV>";
    tuaVariabile += "<DIV id='15' style='display: inline;'><TABLE cellpadding='2' cellspacing='0'><TR><TD>[img]45.jpg[/img]</TD><TD>[img]44.jpg[/img]</TD></TR></TABLE></DIV>";
    tuaVariabile += "<DIV id='14' style='display: inline;'><TABLE cellpadding='2' cellspacing='0'><TR><TD>[img]42.jpg[/img]</TD><TD>[img]41.jpg[/img]</TD></TD></TR></TABLE></DIV>";
    tuaVariabile += "<DIV style='height: 25; width: 360; display: block; cursor: pointer;'></DIV>";
    tuaVariabile += "</TD></TR></TABLE>";
    
    document.getElementById("cart").innerHTML = tuaVariabile;

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.