salve a tutti.
tramite questa applicazione js permetto l'utente di formattare il testo con i prompt e nella textarea nella posizione del cursore uscirà il testo formatato racchiuso nei tag.
il problema è se il cursore si ritrova all'interno del tag.codice:<script type="text/javascript"> <!-- function AddToTextarea(TextareaID,TextToAdd,Titolo,TypeText){ if(TypeText !=""){ var L = prompt(Titolo,""); if(TypeText != "link"){ if (L) { TextToAdd = '<' + TypeText + '>' + L + '</' + TypeText + '>'; } } else{ var M = prompt("Inserisci il link","http://"); if(L){ TextToAdd= '' + L + ''; } elseif(L != ""){ TexToAdd= '' + M + ''; } } } var MyTextarea = document.getElementById(TextareaID); if (document.all) { MyTextarea.focus(); var MyRange = document.selection.createRange(); MyRange.colapse; MyRange.text = TextToAdd; } else if (MyTextarea.selectionEnd){ var MyLength = MyTextarea.textLength; var StartSelection = MyTextarea.selectionStart; var EndSelection = MyTextarea.selectionEnd; MyTextarea.value = MyTextarea.value.substring(0, StartSelection) + TextToAdd + MyTextarea.value.substring(EndSelection, MyLength); } else{ MyTextarea.value += TextToAdd; } } </script>
esempio:
in [/b] e io ci inserisco qualcosa per sbaglio mi distrugge il tag con ovvie conseguenze. in questo caso grassetto a tutto spiano.
ora avevo pensato di agire nel javascript ma nn serve perchè un utente esperto può anche scrivere a mano i tag e comunque se il cursore si trova all'interno inavvertitamente lo si può rovinare.
pensavo di affidarmi a php per controllare che i tag siano intanti e cancellare le cose sbagliate
io avevo pensato di fare un preg match di questo tipo
se nel testo trovi per esempio uno strong con caratteri aggiuntivi o addirittura eliminati mi sostituisca il tag in modo corretto.
come la si può scrivere o ho detto una cosa che non si può proprio fare.comunque ci sono approcci più semplici?

Rispondi quotando