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

    problema con js editor di testo, non riesco a recuperare la variabile contenitore

    save a tutti

    ho cercato di creare un editor di testo, l'editor mi è riuscito ma non riesco a recuperare il codice....

    con php ho usato l sistema post per recuperare la variabile codicePulito dal form ma non recupera niente..

    chi mi puo aiutare?

    il mio scopo è recuperare il codice (formattato) per poi salvarlo in un db

    ormai sono 5 giorni che ci coccio

    grazie in anticipo



    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <?$codicePulito = @$_POST[codicePulito];
    $editArea = @$_POST[editArea];


    echo"$codicePulito,$editArea";?>
    <html>
    <head>
    <title>Un editor Visuale: Esempio 9, Risultato finale</title>
    <script type="text/javascript" language="javascript">
    function load(){
    AttivaFrame("editArea").designMode = "On";
    }

    function AttivaFrame(iFrameID){
    if (document.getElementById(iFrameID).contentDocument ){
    //Mozilla
    return document.getElementById(iFrameID).contentDocument;
    } else {
    //Internet Explorer
    return document.frames[iFrameID].document;
    }
    }
    function applicaComando(cmdStr,valCmdStr){
    if (!document.getElementById("editArea").contentDocum ent){
    switch(valCmdStr){
    case "h1":
    valCmdStr = "heading 1";
    break;
    case "h2":
    valCmdStr = "heading 2";
    break;
    case "h3":
    valCmdStr = "heading 3";
    break;
    case "p":
    valCmdStr = "paragraph";
    break;
    }
    }
    AttivaFrame("editArea").execCommand(cmdStr,false,v alCmdStr);
    }
    function aggiungiLink(){
    var linkURL = prompt("Inserisci il link da aggiungere:", "");
    AttivaFrame("editArea").execCommand("createLink", false, linkURL);
    }
    function vediCodice(){
    var contenuto = AttivaFrame("editArea").body.innerHTML;
    document.getElementById("codice").innerHTML = contenuto.replace(/</g,"&lt;");
    }
    function pulisciCodice(){
    var contenuto = AttivaFrame("editArea").body.innerHTML;
    contenuto = contenuto.replace(/<br\>/gi,"
    ");
    contenuto = contenuto.replace(/(<p\> )(.*)(<\/p\> )/gi,"

    $2</p>");
    contenuto = contenuto.replace(/<\a/gi,"<a");
    contenuto = contenuto.replace(/<\/a\>/gi,"</a>");
    contenuto = contenuto.replace(/<\div\>/gi,"<div>");
    contenuto = contenuto.replace(/<\/div\>/gi,"</div>");
    contenuto = contenuto.replace(/(<strong\> )(.*)(<\/strong\> )/gi,"<span style=\"font-style: bold;\">$2</span>");
    contenuto = contenuto.replace(/(<ul\> )(.*)(<\/ul\> )/gi,"<ul>$2[/list]");
    contenuto = contenuto.replace(/(<li\> )(.*)(<\/li\> )/gi,"[*]$2");
    //internet explorer
    contenuto = contenuto.replace(/(<font )(color)(=)(#?([A-Fa-f0-9]){3}(([A-Fa-f0-9]){3})?)(> )(.*)(<\/font\> )/gi,"<span style=\"$2:$4;\">$9</span>");
    contenuto = contenuto.replace(/(<p )(align)(=)([A-Za-z]*)(> )(.*)(<\/p\> )/gi,"<div style=\"text-align: $4;\">$6</div>");
    contenuto = contenuto.replace(/(<em\> )(.*)(<\/em\> )/gi,"<span style=\"font-style: italic;\">$2</span>");
    //opera
    contenuto = contenuto.replace(/(<font )(color)(=\")(#?([A-Fa-f0-9]){3}(([A-Fa-f0-9]){3})?)(\")(> )(.*)(<\/font\> )/gi,"<span style=\"$2:$4;\">$10</span>");
    contenuto = contenuto.replace(/(<div )(align)(=\")([A-Za-z]*)(\")(> )(.*)(<\/div\> )/gi,"<div style=\"text-align:$4;\">$7</div>");
    contenuto = contenuto.replace(/(<i\> )(.*)(<\/i\> )/gi,"<span style=\"font-style: italic;\">$2</span>");

    document.getElementById("codicePulito").value = contenuto;
    }
    </script>
    <style type="text/css">
    div#pulsantiera {
    background: ButtonFace;
    width: 402px;
    padding: 10px 0;
    text-align: center;
    }
    #editArea {
    width: 400px;
    border: 1px solid #CCC;
    }
    #pulsantiera a {
    background: ButtonFace;
    color: ButtonText;
    border: 1px solid ButtonFace;
    }
    #pulsantiera a.premuto {
    background: ButtonHighlight;
    border: 1px solid;
    border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;
    }
    #pulsantiera img {
    border: 0;
    }
    #pulsantiera a:hover {
    border: 1px solid;
    border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;
    }
    </style>
    </head>

    <body onload="load()">
    <form action="editorprova.php" method="POST" id=formEditArea" onsubmit="pulisciCodice()">

    <input type="hidden" name="codicePulito"/>
    <iframe src="" id="editArea" name="editArea" width="300" frameborder="0"></iframe>

    <div id="pulsantiera">
    [img]img/corsivo.gif[/img]
    [img]img/grassetto.gif[/img]
    [img]img/sottolineato.gif[/img]
    [img]img/link.gif[/img]
    [img]img/allineadestra.gif[/img]

    [img]img/allineasinistra.gif[/img]
    [img]img/allineacentro.gif[/img]
    [img]img/giustifica.gif[/img]
    [img]img/listaordinata.gif[/img]
    [img]img/lista.gif[/img]
    [img]img/copia.gif[/img]
    [img]img/incolla.gif[/img]
    [img]img/undo.gif[/img]
    [img]img/redo.gif[/img]

    <select onchange="applicaComando('formatblock',this.option s[this.selectedIndex].value)">
    <option>Scegli formato</option>
    <option value="h1">Titolo Grande</option>
    <option value="h2">Titolo Medio</option>
    <option value="h3">Titolo Piccolo</option>
    <option value="p">Paragrafo</option>
    </select>

    <select onchange="applicaComando('forecolor',this.options[this.selectedIndex].value)">
    <option>Scegli un colore</option>
    <option value="#00FF00">Verde</option>
    <option value="#FF0000">Rosso</option>
    <option value="#0000FF">Blu</option>
    <option value="#000000">Nero</option>
    <option value="#990000">Rosso Mattone</option>

    </select>


    </div>
    <input type="submit" value="salva"/>
    </form>
    </body>
    </html>

  2. #2
    Ciao, ho guardato un pò il tuo codice e penso che il problema sia dato dal fatto che l'iframe non fa parte dei tag usabili in una form, nel senso che quando effettui il submit della form l'iframe non viene spedita a nessuno; prova ad utilizzare una textarea al posto dell'iframe...
    Intel C4004 il primo processore!! Stupenda la tecnologia Cell.

  3. #3
    usando la textarea non riesco a renderla editabile con js

    o almeno non ne sono capace

    qualcuno mi aiuta?

  4. #4
    Sto lavorando anche io ad un editor XHTML. L'uso della textarea è obbligatorio, in quanto non puoi spedire il contenuto di un iframe come campo di un form. Il "trucco" è di usare JS per "leggere" il codice dall'iframe quando premi il pulsante submit e di trasferirlo nella textarea (che sarà nascosta tramite una regola CSS) appena prima dell'invio del form.

    Tra l'altro, ero riuscito a farlo anche accessibile (se JS era disabilitato, veniva mostrata la textarea che permetteva di digitare direttamente il codice), se non fosse che IE non vuole saperne di caricarmi il codice letto dalla textarea nell'iframe prima di attivare il designMode!!! E se lo faccio dopo, mi dice che body è nullo o non è un oggetto!

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.