japanguitar Postado Janeiro 13, 2005 Denunciar Share Postado Janeiro 13, 2005 Não consigo pegar o texto selecionado dentro de uma TEXTAREA, e armazenar na variável... já tentei mas ele não pega o texto !!! Me ajudem !!! PS: Já tentei getSeletion() e não consegui.... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 AndreTrickle Postado Janeiro 13, 2005 Denunciar Share Postado Janeiro 13, 2005 posta o script aqui pra gente Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 japanguitar Postado Janeiro 13, 2005 Autor Denunciar Share Postado Janeiro 13, 2005 <html> <head><title class="texto">----Formulário de Envio----</title> <LINK REL="STYLESHEET" HREF="geral2.css" TYPE="text/css"> <script language='JavaScript'> ////////////////////////////////////////////////////////////// //COPYRIGHT - REALWEB SOLUÇÕES LTDA. // ////////////////////////////////////////////////////////////// //////////////////////////////////////////////// // Método: testando() // // Resumo: // Esse método testa a palavra para verificar se ela ela não está com os "#" na frente dela //////////////////////////////////////////////// // Início do código ////////////////////////////// function testando() { if (navigator.appName=="Netscape"&&parseFloat(navigator.appVersion)>=4.7) { if(document.getSelection().text =='') //verifica se o texto não esta selecionado { document.form1.bt1.value="Codificar";//se não estiver selecionando entra a mensagem para seleciona-lo return false; } } else { if(document.selection.createRange().text =='') //verifica se o texto não esta selecionado { document.form1.bt1.value="Codificar";//se não estiver selecionando entra a mensagem para seleciona-lo return false; } } } // Fim testando() ////////////////////////////// //////////////////////////////////////////////// // Método: decodifica() // // Resumo: // Esse método muda o nome do botão para DECODIFICA o usuário caso a palavra esteja com os "#" na frente dela //////////////////////////////////////////////// // Início do código ////////////////////////////// function decodifica() { if (navigator.appName=="Netscape"&&parseFloat(navigator.appVersion)>=4.7) { if(document.getSelection().text.selectionStart('#',0)!= document.getSelection().text.selectionEnd('#')) { document.form1.bt1.value="Decodificar";//se não estiver selecionando entra a mensagem para seleciona-lo return false; } } else { if(document.selection.createRange().text.indexOf('#',0)!=document.selection.createRange().text.lastIndexOf('#')) //verifica se o texto não esta selecionado { document.form1.bt1.value="Decodificar";//se não estiver selecionando entra a mensagem para seleciona-lo return false; } } } // Fim decodifica() ////////////////////////////// //////////////////////////////////////////////// // Método: codifica() // // Resumo: // Esse método muda o nome do botão para CODIFICA o usuário caso a palavra não esteja com os "#" na frente dela /////////////////////////////////////////////// // Início do código ////////////////////////////// function codifica() { if (navigator.appName=="Netscape"&&parseFloat(navigator.appVersion)>=4.7) { if(document.getSelection().text != '') // Se a seleção não for vazia { document.form1.bt1.value= "Codifica"; // botão recebe CODIFICA return false; } } else { if(document.selection.createRange().text != '') // Se a seleção não for vazia { document.form1.bt1.value= "Codifica"; // botão recebe CODIFICA return false; } } } // Fim codifica() ////////////////////////////// //////////////////////////////////////////////// // Método: valida() // // Resumo: // Esse método não submete o texto se ele tiver vazio /////////////////////////////////////////////// // Início do código ////////////////////////////// function valida() { if(document.form1.obs.value=='') // Se o documento for igual a vazio { alert('É preciso haver algum texto \n para submeter o formulário.'); document.form1.obs.focus(); // volta o foco para o texto return false; } return true; } // Fim valida() ////////////////////////////// //////////////////////////////////////////////// // Método: getSel() // // Resumo: // Esse método introduz um caracter especial`("#") no fim e no início da palavra selecionada, desmembrando o texto e o reconstruindo, // e verificando se a seleção não é vazia ou inválida. /////////////////////////////////////////////// // Início do código ////////////////////////////// function getSel() { if (navigator.appName=="Netscape"&&parseFloat(navigator.appVersion)>=4.7) { txt = document.getSelection(); } else { txt = document.selection.createRange().text; } // (document.selection) txt = document.selection.createRange().text; // if (document.getSelection) txt = document.getSelection(); //se o texto estiver selecionado inicia o processo //else if (document.selection) txt = document.selection.createRange().text; //senão cria a instância do objeto range texto = document.forms['form1'].elements['obs'].value; // atribui o campo textarea a variável texto. texto = txt.replace(new RegExp('([\\f\\n\\r\\t\\v ])+', 'g')," ");//substitui caracteres inválidos com expressão regular if (navigator.appName=="Netscape"&&parseFloat(navigator.appVersion)>=4.7) { if(document.getSelection().text =='') //verifica se o texto não esta selecionado { alert('Nenhum texto selecionado');//se não estiver selecionando entra a mensagem para seleciona-lo return false; } } else { if(document.selection.createRange().text =='') //verifica se o texto não esta selecionado { alert('Nenhum texto selecionado');//se não estiver selecionando entra a mensagem para seleciona-lo return false; } } if (navigator.appName=="Netscape"&&parseFloat(navigator.appVersion)>=4.7) { if(document.getSelection().text !='') { document.form1.bt1.value = 'Decodificar';//mudando o texto do botão } } else { if(document.selection.createRange().text !='') { document.form1.bt1.value = 'Decodificar';//mudando o texto do botão } } if (texto.indexOf('#',0)!=texto.lastIndexOf('#')) // se houver alguma criptografia no inicio ou no fim do arquivo { novo ='';//cria a variavel novo e atribui vazio a ela for(i=0;i<texto.length;i++) { //desmembra o texto em letras if(texto.charAt(i)!='#') { novo = novo + texto.charAt(i); //reconstrui o texto novamente } } if (navigator.appName=="Netscape"&&parseFloat(navigator.appVersion)>=4.7) { document.getSelection().text = novo;//atribui a seleção do texto a variável novo que esta reconstruida } else { document.selection.createRange().text = novo;//atribui a seleção do texto a variável novo que esta reconstruida } } else // aqui se ele não encontrou o # no texto ele faz a criptografia para substituição { string = texto;//cria a variável strig e atribui a ela o texto selecionado temp = texto; //cria a variável temp e atribui a ela o texto selecionado if(string.indexOf(' ',0)==string.lastIndexOf(' ')) { string = txt.replace(/(^\s*)|(\s*$)/g, ""); string=txt.replace(string,'#'+string+'#');//faz a inserção dos caracteres na variável string if (navigator.appName=="Netscape"&&parseFloat(navigator.appVersion)>=4.7) { alert(string); document.getSelection().text=string; } else { document.selection.createRange().text=string; } return true; } if(string.indexOf(' ',0)!=string.lastIndexOf(' ')) { string = txt.replace(/(^\s*)|(\s*$)/g, ""); string=txt.replace(string,'#'+string+'#');//faz a inserção dos caracteres na variável string //document.form1.bt1.value="Codifica"; if (navigator.appName=="Netscape"&&parseFloat(navigator.appVersion)>=4.7) { document.getSelection().text=string; } else { document.selection.createRange().text=string; } return true; } else if(string.indexOf(' ',0)>0) { string = txt.replace(/(^\s*)|(\s*$)/g, ""); string= txt.replace(' ',''); string=txt.replace(string,'#'+string+'#');//faz a inserção dos caracteres na variável string if (navigator.appName=="Netscape"&&parseFloat(navigator.appVersion)>=4.7) { document.getSelection().text=string; } else { document.selection.createRange().text=string; } return true; } string = txt.replace(/(^\s*)|(\s*$)/g, ""); string=txt.replace(string,'#'+string+'#');//faz a inserção dos caracteres na variável string if (navigator.appName=="Netscape"&&parseFloat(navigator.appVersion)>=4.7) { document.getSelection().text=string; } else { document.selection.createRange().text=string; }//atribui a seleção a nova variável string com a inserções feitas string= txt.replace(' ',''); return true; } return true; } // Fim getSel() ////////////////////////////// ////////////////////////////////////////////////////////////// //COPYRIGHT - REALWEB SOLUÇÕES LTDA. // ////////////////////////////////////////////////////////////// //Script feito por // // // //Ricardo Araújo - Desenvolvedor Web // //Empresa : Real Web Soluções // //Diretor : Felipe Moreno ( fmoreno@realweb.com.br ) // // // //Telefone : 3419 - 1095 // ////////////////////////////////////////////////////////////// //////////////////////////////////////////////// // Método: contarPalavras(); // Parâmetro: this_field // // this_field -> Texto a ser traduzido (passado como um objeto - textarea) // // Resumo: // Esse método contabiliza o número de palavras que o usuário digitar no campo. // Contempla a inclusão de caracteres especiais e descarta a contagem de números. //////////////////////////////////////////////// function contarpalavras (this_field) { // Cria variáveis de controle ////////////////////////////// var numero_palavras = true; // checa se existem palavras no campo var numero_char = true; // checa se existem caracteres no campo limitePalavras = 100;// Determina o número máximo de palavras por tradução numeroLooping = this_field.value.length;// Determina o número de loopings // Início do código ////////////////////////////// for (i=0;i<=numeroLooping;i++) { // Repete de acordo com as palavras digitadas if (numero_palavras == null) { numero_palavras = true; // Impede um erro ao zerar ( deletar ) o campo. } if (numero_char == null) { numero_char = false; } var conta_char = this_field.value.length;// Conta quantos caracteres foramn digitados até o momento var todootexto = this_field.value + " "; // Margem de segurança para não apagar o que já foi digitado var espaco_inicial = /^[^A-Za-z]+/gi; // Define que apenas letras contabilizam palavras var texto_dropado = todootexto.replace(espaco_inicial, ""); // Armazena numa variável o texto sem espaços e contablizando apenas as letras var nao_alfanumericos_rExp = rExp = /[^A-Za-z]+/gi; // Armazena os caracteres não alfanuméricos var textoapagado = texto_dropado.replace(nao_alfanumericos_rExp, " "); // Armazena numa variável o texto sem espaços , contabilizando letras e descartando a contagem de caracteres especiais. var textoseparado = textoapagado.split(" ");// Separa os espaços ; palavras = textoseparado.length -1;// Armazena numa variável a quantidade de palarvas menos a margem de segurança if (todootexto.length <2) { // Zera a variável quando campo estiver em branco palavras = 0; // Zera a variável quando campo estiver em branco } if (palavras == 1) { pluralpalavra = " palavra"; // define se a palavra usada será no plural ou singular } else { pluralpalavra = " palavras"; // define se a palavra usada será no plural ou singular } if (conta_char == 1) { pluralchar = " caracter"; // define se a palavra usada será no plural ou singular } else { pluralchar = " caracteres"; // define se a palavra usada será no plural ou singular } if (numero_palavras & numero_char) { document.forms['form1'].elements['numero'].value = + palavras + pluralpalavra; // Atualiza o campo dinâmico } else { if (numero_palavras) { alert ("Contando Palavras: " + palavras + pluralpalavra); // Se existir algum erro alerta de qualquer forma } else { if (numero_char) { alert ("Contando Caracters: " + conta_char + pluralchar); // Se existir algum erro alerta de qualquer forma } } } return palavras; // retorna o valor atual das palavras digitadas } } // Fim do Método contarpalavra ////////////////////////////////////////////////////////////// //////////////////////////////////////////////// // Método: cor() // // Resumo: // Esse método informa o usuário caso o limite de palavras definido for ultrapassado. //////////////////////////////////////////////// // Início do código ////////////////////////////// function cor() { if ( palavras > limitePalavras) // Informar o usuário caso o limite de palavras definido for ultrapassado { document.forms['form1'].elements['frase3'].value = "Limite Alcançado"; // Escreve tela limite alcançado document.forms['form1'].elements['frase3'].style.color = "red"; // Muda a cor da palavra para vermelho document.forms['form1'].elements['max'].style.color = "red"; // Muda a cor do número para vermelho } else // Informar o usuário caso o limite de palavras definido ainda não for alcançado { document.forms['form1'].elements['frase3'].value = "Limite Permitido"; // Escreve tela limite permitido document.forms['form1'].elements['frase3'].style.color = "green"; // Muda a cor da palavra para verde document.forms['form1'].elements['max'].style.color = "green"; // Muda a cor do número para verde } } // Fim do Método cor() ////////////////////////////////////////////////////////////// //////////////////////////////////////////////// // Método: espacoUtil() // // Resumo: // Esse método informa ao usuário o número de espaço em seu texto //////////////////////////////////////////////// // Início do código ////////////////////////////// function espacoutil() { if (palavras == 0) // Conferem se existem palavras digitadas { document.forms['form1'].elements['espaco'].value = 0; // Zera se não existirem palavras digitadas } else { document.forms['form1'].elements['espaco'].value = palavras - 1; // Calcula a quantidade de espaços } } // Fim do Método espacoUtil() ////////////////////////////////////////////////////////////// //////////////////////////////////////////////// // Método: sonic() // // Resumo: // Esse método insere ao value do TextArea um valor nulo, para habilitar a função de focus. //////////////////////////////////////////////// // Início do código ////////////////////////////// function sonic() { document.forms['form1'].elements['obs'].value = ""; document.forms['form1'].elements['obs'].focus(); } // Fim do sonic() ////////////////////////////////////////////////////////////// //////////////////////////////////////////////// // Método: removeEspaco() // // Resumo: // Esse método remove os espaços desnecessários do texto ao clicar no botão enviar //////////////////////////////////////////////// // Início do código ////////////////////////////// function removeEspaco() { txt = document.forms['form1'].elements['obs'].value; // A variável recebe todo o texto txt2 = txt.replace(/^[^A-Za-z0-9.,!?:...@#$%¨¬&*()-–_=+{}`´^~áéíóúâêôàùäçüãõ;<>\n""'']+/gi, ""); // Corta os espaços iniciais. var nao_alfanumericos_rExp = /[^A-Za-z0-9.,!?:...@#$%¨¬&*()-–_=+{}`´^~áéíóúâêôçàùäüãõ;<>\n""'']+/gi; // Corta os espaços desnecessários deixando apenas um espaço entre as palavras. document.forms['form1'].elements['obs'].value = txt2.replace(nao_alfanumericos_rExp, " ") // O textarea recebe o texto sem espaços. } // Fim do removeEspaco() ////////////////////////////////////////////////////////////// // Fim do Script ////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////// //COPYRIGHT - REALWEB SOLUÇÕES LTDA. // ////////////////////////////////////////////////////////////// //Script feito por // // // //Daniel Góes Silva - Desenvolvedor Web // //Empresa : Real Web Soluções // //Diretor : Felipe Moreno ( fmoreno@realweb.com.br ) // //E-mail : daniel@realweb.com.br // //Telefone : 3419 - 1095 Ramal 24 // ////////////////////////////////////////////////////////////// </script> <style type="text/css"> <!-- .style1 {color: #003399} .style2 {font-size: 16px; font-weight: bold; } .style4 {color: #006699} .estilo_input{ font:11 Verdana; color:black; text-align:left; background-color:white; border: solid #ffffff 1} .estilo_input2{ font:11 Verdana; color:green; text-align:left; background-color:white; border: solid #ffffff 1} .estilo_text{ font:11 Verdana; color:blue; text-align:left;} .estilo_textt{ font:11 Verdana; color:blue; text-align:center;} --> </style> </head> <body onload = sonic()> <div id='aguarde' style='position:absolute;width:100%;height:100%;text-align:center;text-valign:middle;left:0;top:0;visibility:hidden;background:lightblue;filter:alpha(opacity=60)'><br><br><br><br><br><b>Aguarde! Processando o seu Texto!</b></div> <table width="443" border="0" align="center"> <form name="form1" action="recebe.php" method="post"> <tr><td width="326"><input type="button" name="bt1" class="botao" value="Codificar" onclick="getSel();return false;return codifica();"></td> <td width="90" valign="baseline"><div align="right"><img src="images/help.gif" width="16" height="16" hspace="5"><span class="texto">Help</span></div></td> <td width="56"> </td> </tr><!--chama a função javascript acima--> <tr> <td colspan="2"><textarea rows="15" cols="60" id = "coisa" name="obs" class="caixa" onkeypress = "contarpalavras(this);cor();espacoutil()" onfocus = "contarpalavras(this);cor();espacoutil();return testando()" onkeydown = "contarpalavras(this);cor();espacoutil()" onchange = "contarpalavras(this);cor();espacoutil()" onkeyup = "contarpalavras(this);cor();espacoutil()" onMouseUp = "return decodifica()" onblur = "contarpalavras(this);cor();espacoutil();" > <!-- onkeypress = "contarpalavras(this);cor();espacoutil()" onfocus = "contarpalavras(this);cor();espacoutil()" onkeydown = "contarpalavras(this);cor();espacoutil();" onchange = "contarpalavras(this);cor();espacoutil()" onkeyup = "contarpalavras(this);cor();espacoutil()" <!-- onMouseUp = "return decodifica()return testando()" --> <!-- onchange = "this.value=ignoreSpaces(this.value)" --> <!--onblur = "contarpalavras(this);cor();espacoutil();removeEspaco();"> --> </textarea></td> </tr> <tr><td colspan="2" align="right"><input type="button" value="Enviar" class="botao" onclick='removeEspaco();'></td></tr> <tr> <td> <br> <br> <input type=text name="numero" value="0" class ='estilo_input' size = 15 readonly> <br> <input type=text name="espaco" value="0" class ='estilo_input' size = 3 readonly> <input type=text name="frase" value="Espaços" class ='estilo_input' readonly> <br> <input type=text name="max" value="100" class ='estilo_input2' size = 3 readonly> <input type=text name="frase3" value="Limite Permitido" class ='estilo_input2' readonly> <br><br> <br> <br> </td> </tr> </table> </form> </body> </html> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 AndreTrickle Postado Janeiro 13, 2005 Denunciar Share Postado Janeiro 13, 2005 a principiovendo pelo Console JavaScript do mozila (isso é r0x demais!!!)o erro está na linha 58 if(document.getSelection().text.selectionStart('#',0)!= document.getSelection().text.selectionEnd('#')) { Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 japanguitar Postado Janeiro 14, 2005 Autor Denunciar Share Postado Janeiro 14, 2005 Disso eu já sei !!! O problema é que o getSelection() não está pegando o texto...Por que ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Crystian Postado Janeiro 15, 2005 Denunciar Share Postado Janeiro 15, 2005 Onde está esta function getSelection() ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
japanguitar
Não consigo pegar o texto selecionado dentro de uma TEXTAREA, e armazenar na variável... já tentei mas ele não pega o texto !!!
Me ajudem !!!
PS: Já tentei getSeletion() e não consegui....
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.