ciao a tutti
vorrei selezionare delle parole nel testo di una textarea e con un bottone inserire dei all'inizio ed alla fine della parola selezionata.
non so come fare.
Mi potete dare un'idea?
ciao a tutti
vorrei selezionare delle parole nel testo di una textarea e con un bottone inserire dei all'inizio ed alla fine della parola selezionata.
non so come fare.
Mi potete dare un'idea?
E' possibile farlo solo in IE; gli altri browser non hanno un metodo per sentire quale testo è selezionato in una textarea, che io sappia.
codice:function storeCaret () { if (document.forms[0].elements[3].createTextRange) document.forms[0].elements[3].caretPos = document.selection.createRange().duplicate(); } function insertAtCaret (text) { if (document.forms[0].elements[3].createTextRange && document.forms[0].elements[3].caretPos) { var caretPos = document.forms[0].elements[3].caretPos; caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text; } else document.forms[0].elements[3].value = text; } function seltext() { if (document.getSelection) { var str = document.getSelection(); } else if (document.selection && document.selection.createRange) { var range = document.selection.createRange(); var str = range.text; } else { var str = ""; } return str; } function docmd(comm) { switch (comm) { case "ACapo": if (seltext()=="") insertAtCaret(" \n"); break; case "Titolo" : if (seltext()=="") insertAtCaret(" <div class='titolo'> </div>\n"); else insertAtCaret(" <div class='titolo'> " + seltext() + " </div>\n") break; case "STitolo" : if (seltext()=="") insertAtCaret(" <div class='sottotitolo'> </div>\n"); else insertAtCaret(" <div class='sottotitolo'> " + seltext() + " </div>\n") break; case "Grass" : if (seltext()!="") insertAtCaret(" " + seltext() + " "); break; case "Link" : if (seltext()!="") { value=prompt("Inserisci l'indirizzo di destinazione completo di http:// nella casella sottostante",""); insertAtCaret(" " + seltext() + " ");} break; case "Link2" : if (seltext()!="") { value=prompt("Inserisci l'indirizzo di destinazione completo di http:// nella casella sottostante",""); insertAtCaret(" [img]img/bull.gif[/img] " + seltext() + " ");} break; case "Immagine" : if (seltext()=="") insertAtCaret(" <img> "); break; default : break; } } <textarea onselect="storeCaret();" onclick="storeCaret();" onkeyup="storeCaret();"></textarea>
"Le uniche cose che sbagli sono quelle che non provi a fare."
Atipica
ho provato il tuo codice ma non mi funge.
cosa sbaglio?
ho impostato cosi il codice che mi hai postato
--------------------------------
<script language="javascript">
<!--
TUo CODICE
//-->
</script>
<form name="utenti" method="post" action="invia.asp">
<textarea onselect="storeCaret();" onclick="storeCaret();" onkeyup="storeCaret();"></textarea>
<input type="button" name="menu" value="inserisci br">
</form>
--------------------------------
Magari che nel bottone lo devi richiamare il mio codice, se no certo che non fa nulla...Originariamente inviato da siusky
ho provato il tuo codice ma non mi funge.
cosa sbaglio?
<script language="javascript">
<!--
TUo CODICE
//-->
</script>
<form name="utenti" method="post" action="invia.asp">
<textarea onselect="storeCaret();" onclick="storeCaret();" onkeyup="storeCaret();"></textarea>
<input type="button" name="menu" value="inserisci br" onClick="docmd("ACapo");">
</form>
Ciao!
"Le uniche cose che sbagli sono quelle che non provi a fare."
Atipica
si, hai ragione.
cmq mi da errore sulla riga
if (document.forms[0].elements[3].createTextRange)
dicendomi 'è nullo o non è un'oggetto'
ho sbagliato qualcosa?
La cosa mi interessa notevolmente.... Ma da errore anche a me!
help us please
Ragazzi, ma un minimo di iniziativa non l'avete proprio, eh?
O vi preparo io la pappa pronta o proprio non riuscite...
Semplicemente, qui
dovete correggere i due valori adattandoli alla vostra form.codice:document.forms[ numero_della_form_contato_da_zero ].elements[ numero_dell_elemento_contato_da_zero ].createTextRange
Suvvia, un po' di iniziativa!
"Le uniche cose che sbagli sono quelle che non provi a fare."
Atipica
Caro Shores, non ho iniziativa perchè non conosco affatto js!
Conosco PHP e HTML come le mie tasche, lì l'iniziativa ce l'ho... Ma mi ritrovo a dover usare JS per integrazione al mio CMS in PHP... E non ho tempo per impararlo! Capisci?
In ogni caso non riesco a farlo funzionare
Ok, postami un link alla pagina completa che ti risolvo il problema!
Meglio di così...
"Le uniche cose che sbagli sono quelle che non provi a fare."
Atipica
funziona, ho fatto come dicevi tu.
posso chiederti una cosa..
non conosco js,
mi potresti spiegare la stringa
document.forms[ numero_della_form_contato_da_zero ].
elements[ numero_dell_elemento_contato_da_zero ].createTextRange
che non la capisco?
ciao e grazie ancora