ciao a tutti, ho questo problema... Ho studiato l'esempio che c'è sul sito per creare un modulo wysiwyg.. a questo indirizzo http://www.html.it/articoli/costruir...tor-wysiwyg-1/ ..
Molto ben fatto, ma non riesco a fare una cosa... se io volessi editare un testo sccritto e salvato in precedenza, come posso fare a richiamarlo e inserirlo nell'iframe? Ho provato in tutti i modi che conosco ma non ci riesco...
Credo che il problema sia che non riesco a mettere il focus nell'iframe al caricamento della pagina.. Potete aiutarmi?
Ho creato una pagina semplificata per risolvere ma non è servito... vi allego il codice:
codice:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Un editor Visuale: Esempio 9, Risultato finale</title> <script type="text/javascript" language="javascript"> // Porta il focus al riquadro di testo function setFocus() { if (document.all) document.frames("editArea").focus(); else document.getElementById('editArea').contentWindow.focus() return; } function InserisciContenuto(testo) { AttivaFrame("editArea").execCommand("InsertHTML", false, testo); } // per immagini nelle news function popimg() { var finestra = window.open('ins_image.php','_blank','width=700, height=400, scrollbars=yes, resizable=yes, top=100, left=500'); finestra.blur(); self.setfocus(); } 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").contentDocument){ 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,valCmdStr); } function aggiungiImmagine(url){ var imgURL = url; AttivaFrame("editArea").execCommand("insertImage", false, imgURL); } function aggiungiImmagineLink(url, url_link) { var html = "<a href=\""+ url_link +"\" target=\"_blank\"><img src=\""+ url +"\"></a>"; AttivaFrame("editArea").execCommand("InsertHTML", false, html); } 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,"<"); } 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> <?PHP $contenuto = "ECCO UN TESTO DI PROVA PER VEDERE SE FUNZIONA"; ?> <body onload="load()"> <form action="prova2.php" method="POST" id="formEditArea" onsubmit="pulisciCodice()"> <input type="hidden" name="codicePulito" id="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/immagine.gif[/img] [img]img/immagine.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.options[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> <script type="text/javascript"> setFocus(); InserisciContenuto(' testo di prova</p>'); </script> </html>

Rispondi quotando