Ciao ragazzi, ho fatto una ricerca sia su questo forum ma non ho trovato nulla. la discussione è abbastanza semplice credo ma non riesco a venirne a capo. Dunque ho seguito la guida di java.html.it per la costruzione del browser editor e devo dire che oltre ad essere carino funziona anche bene, almeno per ora
l'unico problema che mi da è che quando richiamo il testo dal DB per visualizzarlo nell'iframe non mi stampa a video nulla. il codice è identico a quello della guida ma lo riporto per comodità
codice PHP:
codice:
<script type="text/javascript" language="javascript">
function load(){
AttivaFrame("messaggio").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("messaggio").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("messaggio").execCommand(cmdStr,false,valCmdStr);
}
function aggiungiLink(){
var linkURL = prompt("Inserisci il link da aggiungere:", "");
AttivaFrame("messaggio").execCommand("createLink", false, linkURL);
}
function vediCodice(){
var contenuto = AttivaFrame("messaggio").body.innerHTML;
document.getElementById("codice").innerHTML = contenuto.replace(/</g,"<");
}
function pulisciCodice(){
var contenuto = AttivaFrame("messaggio").body.innerHTML;
contenuto = contenuto.replace(/
/gi,"
");
contenuto = contenuto.replace(/(
)(.*)(</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(/( )(.*)( )/gi,"<span style=\"font-style: bold;\">$2</span>");
contenuto = contenuto.replace(/(<ul> )(.*)([/list])/gi,"<ul>$2[/list]");
contenuto = contenuto.replace(/([*] )(.*)( )/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(/( )(.*)( )/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(/( )(.*)( )/gi,"<span style=\"font-style: italic;\">$2</span>");
document.getElementById("codicePulito").innerHTML = contenuto.replace(/</g,"<");
}
</script>
<body onload="load()">
<form name="frmINSERT" method="post" action="insert_editor.asp">
<input name="titolo" type="text" id="titolo" />
<input name="massima" type="text" id="massima" />
<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/allineasinistra.gif[/img][img]img/allineacentro.gif[/img][img]img/allineadestra.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>
<iframe src="" name="messaggio" id="messaggio" width="300" frameborder="0"><%response.Write(replace(objrs("articolo"),"§","'"))%></iframe>
<input type="hidden" value="" name="messaggio">
<hr/>
<input type="button" onclick="vediCodice()" value="visualizza il codice"/>
<input type="button" onclick="pulisciCodice()" value="pulisci il codice"/>
<div id="codice"></div>
<hr/>
<div id="codicePulito"></div>
<input type="submit" name="Submit" value="INVIO" onClick="document.frmINSERT.messaggio.value = frames.messaggio.document.body.innerHTML;">
</form>
</body>
forse non è possibile far riprendere all'iframe il testo del db? bisogna forse usare del java?