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

    "Document.write", io scrivo lo stile, lui fa finta di niente

    Buongiorno a tutti, da ieri ho questo problema che non sapevo se mettere nel forum dell'HTML, dei CSS o qui. Spero di aver fatto la scelta giusta.

    Ho un framework a livello server che serve a scrivere maschere di un gestionale web-based. In esso c'è una funzionalità che permette di generare griglie di dati mantenendo i dati memorizzati sul browser, disegnando detta griglia a colpi di document.write. Tutto bene, è in piedi da diversi anni.

    Ora, devo fare in modo che le singole celle (che sono degli input nella visualizzazione normale, e dei più semplici TD nella visualizzazione a stampa) possano avere un colore di sfondo, indipendente una dall'altra (tipo Arlecchino, insomma), deciso a run-time. Ho pensato di aggiungere nei document.write un'attributo style per indicare il background-color. Se disegno una pagina con un editor HTML, con quell'attributo, sia IE che Firefox lo visualizzano correttamente.
    Invece la mia griglia non si colora. Gli sfondi delle celle sono sempre bianchi.

    Se provo a selezionare, e fare copia e incolla vedo il codice HTML della griglia, vedo più o meno tutti gli attributi impostati con le document.write, ma non quello di stile. Insomma, pare proprio ignorare quello che gli passo.

    Avete idee? C'è il modo di sapere cosa diamine viene scritto tramite la document.write?

    Grazie per qualsiasi idea sappiate suggerirmi.
    All of the true things that I am about to tell you are shameless lies.
    (Bokonon Books)

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    :master: non so, ho provato con questo e va
    codice:
    <body>
        <form id="form1" runat="server">
        <div>
            <script language="javascript" type="text/javascript">
            // <!CDATA[
            var d = window.document;
            d.write("<table>");
            d.write("<tr>");
            d.write("<td style=\"color:red;background-color:Yellow;\">")
            d.write("xxxxxxxxx");
            d.write("</td>")
            d.write("</tr>");
            d.write("</table>");
            // ]]>
            </script>
        </div>
        </form>
    </body>
    l'html generato, visto con firefox è:
    codice:
    <div>
    	<script language="javascript" type="text/javascript">
    	// <!CDATA[
    	var d = window.document;
    	d.write("<table>");
    	d.write("<tr>");
    	d.write("<td style=\"color:red;background-color:Yellow;\">")
    	d.write("xxxxxxxxx");
    	d.write("</td>")
    	d.write("</tr>");
    	d.write("</table>");
    	// ]]>
    	</script><table><tbody><tr><td style="color: red; background-color: Yellow;">xxxxxxxxx</td></tr></tbody></table>
    
    </div>
    Pietro

  3. #3
    Ok, ho risolto! Deo gratias!

    Rassicurato dall'aver provato il tuo codice, e vedere che funziona, ho cercato di scoprire perché non andasse il mio (che è un filo più complesso):

    Codice PHP:
    if (forminputhidden.charAt(w)==''0'') {
    document.write("<td>");

    if(
    ck==1&&w>=' || to_char(pnoduplicatifrom) ||'&&w<=' || to_char(pnoduplicatito) || '){
        
    document.write("<input type=\"hidden\" readonly size=\"");
    }
    else{

            if (
    colenabled.charAt(w)==''1'') {
                
    document.write("<input type=\"text\" class=\"Griglia\" onblur=\"this.style.backgroundColor=''"+tempcolor+
                
    "'';alert(this.Index)\" onfocus=\"this.style.backgroundColor='''||config.getselcolor||'''\" size=\"");
            }
            else {
                
    document.write("<input type=\"text\" class=\"Griglia\" readonly size=\"");
            }
            
    }
    document.write(tempsize+"\" value=\"");
    document.write(tempvalue+"\" name=\"");
    document.write(tempname+"\" style=\"background-color:#"tempcolor);
    document.write(";\" maxlength=\""+tempmaxsize+"\"> </td>");

    Come potete vedere il colore è contenuto nella variabile tempcolor. Pensavo il problema fosse nella classe (grazie al cielo non è così), invece, banalmente, in tempcolor avevo già il cancelletto!!! L'ho eliminato e adesso va tutto, ho la mia griglia Arlecchino!

    Grazie.
    All of the true things that I am about to tell you are shameless lies.
    (Bokonon Books)

  4. #4
    Tutto bene, però se stampo la pagina, rimane in bianco e nero. Mmm... consigli? Forse è un problema di html / css?

    PS: scusate per il doppio post e per aver usato il tag [ p h p ] anziché quello [ c o d e ] nel post precedente...
    All of the true things that I am about to tell you are shameless lies.
    (Bokonon Books)

  5. #5
    Originariamente inviato da JosaFat
    Tutto bene, però se stampo la pagina, rimane in bianco e nero. Mmm... consigli? Forse è un problema di html / css?
    No, &egrave; una preferenza della stampa nel browser (immagini di sfondo si/no, credo)

    HTH
    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

  6. #6
    Hai perfettamente ragione, è così. Fastidioso: non credo che si possa aggirare tale "limitazione" di sistema. A questo punto, per essere sicuro della fedeltà della stampa, dovrei trasformare la mia griglia in un'immagine stampabile. Cosa che immagino sia di difficile fattibilità.
    All of the true things that I am about to tell you are shameless lies.
    (Bokonon Books)

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