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

    document.write e porzione di codice HTML

    Ciao a tutti, il mio problema da risolvere è il seguente:
    da asp passo una variabile a javascript, tale variabile contiene una porzione di codice html di questo tipo
    codice:
    <table>
      <tr>
        <td>1</td>
        <td>2</td>
      </tr>
      <tr>
        <td>3</td>
        <td>4</td>
      </tr>
      <tr>
        <td>5</td>
        <td>6</td>
      </tr>
    </table>
    ora vorrei stampare questa porzione di codice a video tramite la funzione document.write, ma credo che il fatto che la porzione di codice sia disposta su più righe mandi in errore il document.write....

    come posso risolvere?

  2. #2
    Visto che non so aiutarti nello specifico, ma mi è venuta in mente una cosa delle mie e non riesco a stare zitto , vorrei chiederti una cosa.

    Visto che document.write sta un po' perdendosi come utilizzo, ultimamente, visto che stampa il contenuto senza però radicarne la struttura nella struttura DOM, perchè non sfruttare una tecnica di DOM, per l'appunto?

    Si tratterebbe di usare oggetti come document.createElement() e simili. Ci andrebbe qualche riga di codice in più - visto che sono dei passaggi logici da esplicitare, come 'crea elemento', 'attacca elemento', ... - ma il risultato sarebbe più vicino alle regole di buona progettazione.

    Perchè rompo tanto con questa storia? Credo che l'annuncio del W3C di qualche giorno fa dovrebbe far riflettere: XHTML 2.0 non supporterà più tecnologie come document.write e simili. E' in corso, insomma, una sensibilizzazione all'uso più sensato e ponderato di javascript.

    Tutto qui. Ecco, l'ho detto. Spero che intanto qualcuno arrivi a rispondere esaurientemente alla domanda specifica che hai posto.

  3. #3
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998

    Re: document.write e porzione di codice HTML

    Originariamente inviato da Fello
    Ciao a tutti, il mio problema da risolvere è il seguente:
    da asp passo una variabile a javascript, tale variabile contiene una porzione di codice html di questo tipo
    codice:
    <table>
      <tr>
        <td>1</td>
        <td>2</td>
      </tr>
      <tr>
        <td>3</td>
        <td>4</td>
      </tr>
      <tr>
        <td>5</td>
        <td>6</td>
      </tr>
    </table>
    ora vorrei stampare questa porzione di codice a video tramite la funzione document.write, ma credo che il fatto che la porzione di codice sia disposta su più righe mandi in errore il document.write....

    come posso risolvere?
    Senza nulla dire delle piu' che valide argomentazioni di pierofix, nell'attesa sappi che il problema lo devi risolvere lato server... sostituendo nella stringa che passerai al javascript tutti i vbcrlf con "\\'" (backslash apice)

    ciao
    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

  4. #4
    Azzardo una hazzata: e se si utilizzasse innerHTML?

    N.B. Questa soluzione, se adottabile, sarebbe contro quanto illustrato sopra. E' giusto per dare un'idea in più se sei proprio di fretta.

  5. #5
    premetto che qualsiasi suggerimento è sempre ben accetto!!!

    sto provando in tutti i modi, ho provato anche cosi:
    codice:
    document.getElementByID('id_del_div').innerHTML='<%= variabile_asp %>';
    ma il problema che incontro è sempre il medesimo: essendo la variabile asp una cosa di questo tipo:
    codice:
    <table>
      <tr>
        <td>1</td>
        <td>2</td>
      </tr>
      <tr>
        <td>3</td>
        <td>4</td>
      </tr>
      <tr>
        <td>5</td>
        <td>6</td>
      </tr>
    </table>
    ogni volta che provo a metterla all'interno di un'istruzione ottengo un errore, quindi come dice br1 (che ringrazio ancora ) proverò a sostituire lato server tutti i vbcrlf

  6. #6
    Utente di HTML.it L'avatar di nuky
    Registrato dal
    Oct 2001
    Messaggi
    1,053
    Originariamente inviato da Fello
    premetto che qualsiasi suggerimento è sempre ben accetto!!!

    sto provando in tutti i modi, ho provato anche cosi:
    codice:
    document.getElementByID('id_del_div').innerHTML='<%= variabile_asp %>';
    ma il problema che incontro è sempre il medesimo: essendo la variabile asp una cosa di questo tipo:
    codice:
    <table>
      <tr>
        <td>1</td>
        <td>2</td>
      </tr>
      <tr>
        <td>3</td>
        <td>4</td>
      </tr>
      <tr>
        <td>5</td>
        <td>6</td>
      </tr>
    </table>
    ogni volta che provo a metterla all'interno di un'istruzione ottengo un errore, quindi come dice br1 (che ringrazio ancora ) proverò a sostituire lato server tutti i vbcrlf
    Dovrebbe bastare torgliere i ritorni a capo:
    codice:
    document.getElementByID('id_del_div').innerHTML='<%= Replace(variabile_asp, vbCrLf, "") %>';
    - "E' un messaggio. E' di Svarion, della terra di Merdor!"
    - "Busto Arsizio?"
    - "Terrazzo, sgabello, formaggio. Borraccia blu, ca**o di gomma e... CANNUCCIA!"
    - "Ca**o dici? C'è scritto «frocio chi legge»!"

  7. #7
    Ciao e grazie a tuttiper il supporto
    purtroppo nemmeno con questo sistema funziona:
    codice:
    document.getElementByID('id_del_div').innerHTML='<%= Replace(variabile_asp, vbCrLf, "") %>';


    Ecco il mio script: (ASP + JS)
    codice:
    <%
    'Dichiaro la variabile
    Dim objXMLHttp
    
    'Instanzio l'oggetto XMLHttp
    Set objXMLHttp = Server.CreateObject("Msxml2.ServerXMLHTTP.3.0") 
    response.Buffer=true
    'Costruisco e invio la richiesta
    objXMLHttp.Open "GET", "http://www.nomesito.ext/pagina.html", false
    
    objXMLHttp.Send
    
    'Stampo la risposta
    dim stringa
    stringa=objXMLHttp.responseText
    
    'Faccio pulizia
    Set objXMLHttp = Nothing
    
    set re=server.CreateObject("VBScript.RegExp")
    re.Pattern="inzio ([^\v]*?) fine"
    set ris = re.Execute(stringa)
    if ris.count>0 then
      Response.Write ris(0).SubMatches(0)
    end if
    %>
    ora vorrei che il valore della variabile
    codice:
    ris(0).SubMatches(0)
    venga stampata a video tramite Javascript, ma siccome il valore della varibile è una cosa del tipo:
    codice:
    <table class="qualcosa">
      <tr class="qualcosa">
        <td class="qualcosa">1</td>
        <td>2</td>
      </tr>
      <tr class="qualcosa">
        <td class="qualcosa">3</td>
        <td>4</td>
      </tr>
      <tr class="qualcosa">
        <td class="qualcosa">5</td>
        <td>6</td>
      </tr>
    </table>
    io non riesco a stamparlo a video in nessun modo

  8. #8
    Utente di HTML.it L'avatar di nuky
    Registrato dal
    Oct 2001
    Messaggi
    1,053
    Originariamente inviato da Fello
    Ciao e grazie a tuttiper il supporto
    purtroppo nemmeno con questo sistema funziona:
    codice:
    document.getElementByID('id_del_div').innerHTML='<%= Replace(variabile_asp, vbCrLf, "") %>';


    Ecco il mio script: (ASP + JS)
    codice:
    <%
    'Dichiaro la variabile
    Dim objXMLHttp
    
    'Instanzio l'oggetto XMLHttp
    Set objXMLHttp = Server.CreateObject("Msxml2.ServerXMLHTTP.3.0") 
    response.Buffer=true
    'Costruisco e invio la richiesta
    objXMLHttp.Open "GET", "http://www.nomesito.ext/pagina.html", false
    
    objXMLHttp.Send
    
    'Stampo la risposta
    dim stringa
    stringa=objXMLHttp.responseText
    
    'Faccio pulizia
    Set objXMLHttp = Nothing
    
    set re=server.CreateObject("VBScript.RegExp")
    re.Pattern="inzio ([^\v]*?) fine"
    set ris = re.Execute(stringa)
    if ris.count>0 then
      Response.Write ris(0).SubMatches(0)
    end if
    %>
    ora vorrei che il valore della variabile
    codice:
    ris(0).SubMatches(0)
    venga stampata a video tramite Javascript, ma siccome il valore della varibile è una cosa del tipo:
    codice:
    <table class="qualcosa">
      <tr class="qualcosa">
        <td class="qualcosa">1</td>
        <td>2</td>
      </tr>
      <tr class="qualcosa">
        <td class="qualcosa">3</td>
        <td>4</td>
      </tr>
      <tr class="qualcosa">
        <td class="qualcosa">5</td>
        <td>6</td>
      </tr>
    </table>
    io non riesco a stamparlo a video in nessun modo
    Posta l'HTML che ottieni con il tentativo che ti ho proposto io.
    Intendo l'html mandato al client visualizzando il sorgente della pagina dal browser.
    - "E' un messaggio. E' di Svarion, della terra di Merdor!"
    - "Busto Arsizio?"
    - "Terrazzo, sgabello, formaggio. Borraccia blu, ca**o di gomma e... CANNUCCIA!"
    - "Ca**o dici? C'è scritto «frocio chi legge»!"

  9. #9
    Allora all'interno del tag <body> metto questo:
    codice:
    <script type="text/javascript">
    document.getElementByID('risultati').innerHTML='<%= Replace(ris(0).SubMatches(0), vbCrLf, "") %>';
    </script>
    ma quando vuisualizzo la pagina non vedu nulla, poi se apro il sorgente vedo questo:
    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Documento senza titolo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    
    <body>
    <script type="text/javascript">
    document.getElementByID('risultati').innerHTML='
    <table id="risultati">
      <tr class="qualcosa">
        <td class="qualcosa">1</td>
        <td>2</td>
      </tr>
      <tr class="qualcosa">
        <td class="qualcosa">3</td>
        <td>4</td>
      </tr>
      <tr class="qualcosa">
        <td class="qualcosa">5</td>
        <td>6</td>
      </tr>
    </table>
    ';
    
    </script>
    </body>
    </html>

  10. #10
    Utente di HTML.it L'avatar di nuky
    Registrato dal
    Oct 2001
    Messaggi
    1,053
    Originariamente inviato da Fello
    Allora all'interno del tag <body> metto questo:
    codice:
    <script type="text/javascript">
    document.getElementByID('risultati').innerHTML='<%= Replace(ris(0).SubMatches(0), vbCrLf, "") %>';
    </script>
    ma quando vuisualizzo la pagina non vedu nulla, poi se apro il sorgente vedo questo:
    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Documento senza titolo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    
    <body>
    <script type="text/javascript">
    document.getElementByID('risultati').innerHTML='
    <table id="risultati">
      <tr class="qualcosa">
        <td class="qualcosa">1</td>
        <td>2</td>
      </tr>
      <tr class="qualcosa">
        <td class="qualcosa">3</td>
        <td>4</td>
      </tr>
      <tr class="qualcosa">
        <td class="qualcosa">5</td>
        <td>6</td>
      </tr>
    </table>
    ';
    
    </script>
    </body>
    </html>
    I ritorni a capo ci sono ancora, evidentemente non sono vbCrLf.
    Ma li scrivi tu i ritorni a capo? Non è che sono vbCr?
    Prova a vedere qual'è il codice ascii facendo un ciclo simile:
    codice:
      For i = 1 To Len(SubMatches(0))
        Response.Write ("Lettera:" & Mid(SubMatches(0), i, 1) & " - Codice: " & Asc(Mid(SubMatches(0), i, 1)))
      Next
    Che numeri scrive nei punti del ritorno a capo? Se c'è solo 13 vuol dire che sono vbCr, se c'è anche il 10 sono vbCrLf.
    - "E' un messaggio. E' di Svarion, della terra di Merdor!"
    - "Busto Arsizio?"
    - "Terrazzo, sgabello, formaggio. Borraccia blu, ca**o di gomma e... CANNUCCIA!"
    - "Ca**o dici? C'è scritto «frocio chi legge»!"

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.