Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, eu gostaria de saber como poderia ser feito um script que além de me revelar a posição do cursor em um campo do tipo textarea ele considerasse uma possivel seleção, vou dar um exemplo pra ficar mais facil de compreender:
tenho o texto: eu caminhava feliz.
selecionado eu tenho a palavra: 'caminhava'
ao clicar um um icone, tipo o de deixar na formatação 'x', o texto passa a ser: eu <x>caminhava</x> feliz.
ou seja, ficaria no formato de 'x' e apto a salvar corretamente no banco de dados.
Abaixo segue um script que eu fiz, ele funciona bem, porém ele escreve o <x></x> no fim do texto, ou seja, ignorando a posição atual do cursor e ao escrever o <x></x> no final do texto ele coloca o cursor entre o <x> e o </x>. O que eu quero é semelhante ao que se vê em fóruns, as formatações de postagem.
Dizendo diretamente o que me interessa:
Com esses dois comandos fica fácil montar o script, pois eu poderia posicionar o '<x>' onde reside atualmente o cursor, sabendo que há um texto selecionado eu poderia contar quantos caracteres estão selecionados (length) e inserir a tag '</x>' ao fim desse texto selecionado.
PS.: Note que nesse script abaixo a posição do cursor nao interessa.. ele simplesmente joga a tag para o fim.
<a href="java script:void(0);" onClick="changeText('<x>', '</x>'); return false;"><img src="arquivos/form/x.gif" alt="x" width="23" height="22" border="0" align="bottom" title="x"/></a>
<script>
function changeText(antes,depois) {
tamanho_depois = depois.length;
texto = document.form1.n_texto.value;
document.form1.n_texto.value = texto+antes+depois;
tamanho = document.form1.n_texto.value.length;
tamanho_final = tamanho - tamanho_depois;
document.form1.n_texto.focus();
document.form1.n_texto.selectionEnd = tamanho_final;
}
</script>
<textarea name="n_texto" cols="100" rows="20" disabled id="n_texto"></textarea>Carregando comentários...