Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Wagner Martins - SC

Formatando texto

Recommended Posts

Olá,

 

Peguei uma função que formata texto dentro do text area, funciona direitinho, mais eu queria saber como eu faço para sem selecionar a palavra ele faz a formatação. Tipo, qdo vou formatar a palavra ou texto dentro do text area sem selecionar os mesmos, aparece um alert, pedindo para selecionar uma palavra ou texto. Mais no caso do comondo '<br>' que é um comando de quebra de linha, não irá precisar selecionar nada, e sim apenas colocanco o código onde tiver o cursor do mouse! Tem como fazer isso? O código esta logo abaixo!!

 

 

 

<script type="text/javascript">// Função para inserir tag HTML no texto selecionadofunction InsertTagHTML(tag_open,tag_close) {// Detecta o primeiro form na página e a textara (noticia) nelavar richtext = document.forms[0].noticia; // Variável que armazena o texto originalvar texto_original = richtext.value;// Detecta os browsers que suportam o selection.createRange() como Internet Explorerif (document.selection) { // Variável que armazena o texto selecionado var texto_selecionado = document.selection.createRange().text; // Variável que cria o novo texto (este será o texto formatado). var texto_novo = ""; // Variável que armazenará o texto formatado var texto_formatado = "";  // Verificando se foi feita alguma seleção if (texto_selecionado.length == 0) {  alert("Por favor, selecione o texto para formatá-lo.\nObrigado."); // Início do processo de formatação do texto } else {  // Complementando a variável - novo_texto = "";  novo_texto = tag_open + texto_selecionado + tag_close;  // Complementando a variável - texto_formatado  texto_formatado = (texto_original.replace(texto_selecionado, novo_texto));  // UFA! Insere o texto formatdo  document.forms[0].noticia.value = texto_formatado; }} // Fechando a verificação do document.selecion// Detecta os browsers que NÃO suportam o selection.createRange() como o Firefoxelse { // Variáveis que pegam o texto selecionado // Pega o início do texto var inicio_texto = richtext.selectionStart; // Pega o termínio do texto var termino_texto = richtext.selectionEnd; // Pega o texto selecionado por completo var texto_selecionado = richtext.value.substring(inicio_texto,termino_texto); // Verificando se foi feita alguma seleção if (texto_selecionado.length == 0) {  alert("Por favor, selecione o texto para formatá-lo.\nObrigado."); // Início do processo de formatação do texto } else { // Variável que cria o novo texto (este será o texto formatado). var texto_novo = ""; // Variável que armazenará o texto formatado var texto_formatado = ""; // Complementando a variável - novo_texto = ""; novo_texto = tag_open + texto_selecionado + tag_close; // Complementando a variável - texto_formatado texto_formatado = (texto_original.replace(texto_selecionado, novo_texto)); document.forms[0].noticia.value = texto_formatado; }}}</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testei o script acima, parecia estar tudo bem, mas reparei um erro, por exemplo:

 

o texto seguinte:

 

"Olá isso é um teste"

 

digamos que eu queira que a palavra "Olá" fique em negrito. Basta selecioná-la e clicar em BOLD, ficando assim:

 

"<b>Olá</b> isso é um teste"

 

continuando, agora eu gostaria que a letra "s" da palavra "teste" recebesse formatação também bastaria selecionar a letra clicar em BOLD. Mas está ocorrendo um erro, o script varre o texto procurando a primeira ocorrencia da letra "s" e aplica a formataão nela,m dando esse resultado:

 

"<b>Olá</b> i<b>s</b>so é um teste"

 

sendo que eu havia selecionado o "s" da palavra "teste"!!!

deveria ter ficado assim:

"<b>Olá</b> isso é um te<b>s</b>te"

 

_________________________________________

 

Alguém mais teve este erro? Preciso urgente resolver este bug, se puderem me dar uma luz serei grato!

 

Obrigado! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.