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

    salvo html generato in popup: con FF perdo caratteri accentati

    ciao a tutti...

    ho bisogno di un chiarimento...

    nei mesi scorsi grazie al vostro aiuto ho imparato a generare una popup che contiene il testo inserito in una textarea...

    Gongolo perché funziona, e mi illudo di aver appreso un pò di .js... poi mi accorgo di un paio di problemi... (uno sicuramente di sintassi, l'altro non saprei)

    mi spiego:
    1.
    Primo problema:
    ho una textarea; scrivo un testo; invio; il testo mi si apre in popup
    con replace(/\n/g,"
    ")
    ottengo anche gli a capo
    con replace(/à/g, " & a g r a v e ; ") ottengo le à
    con replace(/à/g, " & a g r a v e ; ",/è/g, " & e g r a v e ; ") NON ottengo le è Perché?

    2.
    secondo problema:
    la popup che ottengo la salvo con nome, ma con FF la à diventa à (attenzione: solo nel file salvato, perché in quello generato in popup è correttamente una à: nel codice & a g r a v e
    Perché questa cosa? Con IE il file che salvo è corretto (unica differenza: IE vuole salva solo html, mentre FF vuole Salva pagina web completa)


    Perché ogni volta che mi sembra di acchiappare Javascript per la coda, invece mi sfugge sempre di più
    Mi aiutate a capire (e se possibile a risolvere?)

    grazie comunque e in anticipo...


    ecco il codice ed ecco la PAGINA ONLINE

    codice:
    <html><head>
    <script type="text/javascript">    
    function generaPop() {
       Poppizzami = window.open('','testo', 'toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width=800,height=600')
       Poppizzami.document.write("<h1>primo testo inserito:</h1>
    
    " + document.lamiatextarea.testo_01.value.replace(/à/g, "&agrave;") + "</p>");
       Poppizzami.document.write("<h1>secondo testo inserito:</h1>
    
    " + document.lamiatextarea.testo_02.value.replace(/à/g, "&agrave;",/è/g, "&egrave;") + "</p>");
       Poppizzami.document.write("<h1>terzo testo inserito:</h1>
    
    " + document.lamiatextarea.testo_03.value.replace(/\n/g,"
    ") + "</p>");
       Poppizzami.document.close()
    }
    </script>
    </head><body>
    <form name="lamiatextarea">
    
    
    scrivi testo con la lettera a accentata:</p><textarea rows="5" cols="50" size="20" name="testo_01"></textarea>
    <hr>
    
    
    scrivi testo con le lettere a + e accentate:</p><textarea rows="5" cols="50" size="20" name="testo_02"></textarea>
    <hr>
    
    
    scrivi testo con a capo:</p><textarea rows="5" cols="50" size="20" name="testo_03"></textarea>
    <hr>
    <input type="button" value="Genera file" onClick="generaPop();" /> 
    <input type="reset" name="reset" value="Cancella" />
    </form>
    </body></html>
    O saisons, ô châteaux,
    Quelle âme est sans défauts?

    Rimbaud - L'Éternité (1872)

    EsseZeta - VisualWriting | www.essezeta.org

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    1) perche' inventi la sintassi:
    con un solo replace vuoi fare piu' replace completamente diversi?
    avrai bisogno di un replace per ogni ...replace, non credi?

    2) in quei document.write inizia a costruire una pagina vera e propria, con un doctype, head, body, dichiarazione del charset...
    non un insieme di <h1>, che non costituiscono un documento xhtml corretto

  3. #3
    innanzitutto grazie, Xinod (sempre pronto all'aiuto come sempre...)...

    1.
    per la sintassi "reinventata"
    provvedo subito...
    basta appendere u replce all'altro cosi?
    .replace(/à/g, "&agrave;").replace(/è/g, "&egrave;")
    mi funziona, ma se s'è un modo più ortodosso ti prego di indicarmelo...

    2.
    per la costruzione del documento... in realtà ho semplificato solo nell'esempio postato... ma non è lì il problema, perché anche con la costruzione di tutta la pagina a modo (vedi codice sotto o testa su NUOVA PAGINA ONLINE ) ottengo lo stesso risultato...

    Così a naso (e da incompetente) mi verrebbe da pensare che si tratti di un'impostazione di trattamento dei file durante il salvataggio propria di FF...
    perché il codice di partenza (prima di fare ctrl+s con FF o salva con nome con IE) è lo stesso e corretto...
    ??? ??? ???

    codice:
    <html><head>
    <script type="text/javascript">    
    function generaPop() {
       Poppizzami = window.open('','testo', 'toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width=800,height=600')
       Poppizzami.document.write('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">');
       Poppizzami.document.write('\n<html xmlns="http://www.w3.org/1999/xhtml">');
       Poppizzami.document.write('\n<head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">');
       Poppizzami.document.write('\n<title>test</title></head><body>');
       Poppizzami.document.write("\n<h1>primo testo inserito:</h1>
    
    " + document.lamiatextarea.testo_01.value.replace(/à/g, "&agrave;") + "</p>");
       Poppizzami.document.write("\n<h1>secondo testo inserito:</h1>
    
    " + document.lamiatextarea.testo_02.value.replace(/à/g, "&agrave;").replace(/è/g, "&egrave;") + "</p>");
       Poppizzami.document.write("\n<h1>terzo testo inserito:</h1>
    
    " + document.lamiatextarea.testo_03.value.replace(/\n/g,"
    ") + "</p>");
       Poppizzami.document.write("\n</body></html>");
       Poppizzami.document.close()
    }
    </script>
    </head><body>
    <form name="lamiatextarea">
    
    
    scrivi testo con la lettera a accentata:</p><textarea rows="5" cols="50" size="20" name="testo_01"></textarea>
    <hr>
    
    
    scrivi testo con le lettere a + e accentate:</p><textarea rows="5" cols="50" size="20" name="testo_02"></textarea>
    <hr>
    
    
    scrivi testo con a capo:</p><textarea rows="5" cols="50" size="20" name="testo_03"></textarea>
    <hr>
    <input type="button" value="Genera file" onClick="generaPop();" /> 
    <input type="reset" name="reset" value="Cancella" />
    </form>
    </body></html>
    O saisons, ô châteaux,
    Quelle âme est sans défauts?

    Rimbaud - L'Éternité (1872)

    EsseZeta - VisualWriting | www.essezeta.org

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    1) va bene

    2) non so, quando salvi il browser comunque valuta quello che c'e' nel documento
    (lampante e' il caso di IE che aggiunge il motw e doctype)
    non mi e' mai servito far salvare la pagina pretendendo che tutto restasse invariato

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.