Ir para conteúdo

POWERED BY:

Arquivado

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

DiegoEP

Desafio ao poder javascript

Recommended Posts

Olá Pessoal, estou desenvolvendo um sistema de educação on-line, onde o Professo irá escrever um texto, num textarea semelhante a este que escrevemos as mensagens aqui no fórum, a diferença é que quando ele selecionar um texto irá abrir uma popup com opções para ele colocar dicas sobre aquela palavra, assim, a bendita será gravada no banco de dados e quando acessado pelo aluno, ele terá as dicas para descobrir que palavra é aquela.Nisso eu encontrei um grande problema, e se houver a mesma palavra repetida no texto? Para resolver isso eu armazeno também a posição de inicio e fim da palavra no texto, o problema é que é tudo feito em tempo de digitação, então se eu modifico o texto antes daquela palavra, as posições dela não serão mais as mesmas.O que eu preciso é de alguma solução em javascript + ajax que me auxilie a calcular sempre (onkeyup) a posição de cada uma das palavras que foram selecionadas e também de alguma forma, deixar elas com uma cor diferente no textarea, justamente para diferenciar as que foram escolhidas...

Compartilhar este post


Link para o post
Compartilhar em outros sites

DiegpEPno seu caso seria mais conveiente fazer um sistema de hot-wordsatualmente algumas empresas utilizam hot-words pra vender publicidade.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema da solução com hot-words seria no caso das palavras repetidas...

 

Cara, tive que fazer algo parecido aqui para intranet do meu serviço e a solução que tive foi esta:

http://codylindley.com/blogstuff/js/tooltip/tooltip.htm

 

Ou seja, basta você usar esta lib e criar um pequeno wrapper para tratar as palavras que serão 'detalhadas' pelos professores.

Compartilhar este post


Link para o post
Compartilhar em outros sites

??o funcionamento lógico é o mesmo do hot-words. se nao quiser repetir as palavras faça uma implementação colocando um delimitador

Compartilhar este post


Link para o post
Compartilhar em outros sites

??

 

o funcionamento lógico é o mesmo do hot-words. se nao quiser repetir as palavras faça uma implementação colocando um delimitador

???²

Hinom, o problema não é "não querer repetir as palavras", mas sim dar contextualidade diferentes para palavras iguais, eu não disse que a lógica do hotwords esteja errada, mas sim a sua implementação....

 

No cenário proprosto pelo DiegoEP, o usuário que dará a contextualidade em palavras distintitas (ou ambiguas) em seu texto em tempo de edição e o sistema terá que se encarregar de processar e exibir estas informações. http://forum.imasters.com.br/public/style_emoticons/default/closedeyes.gif

 

A forma que eu propus não é diferente visualmente das famigeradas hotwords (que eu odeio) mas sim na forma como é implementada, afinal, quando você inclui este tipo de publicidade em seu site você não pode escolher quais palavras terão ou não o link contextualizado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

comentei sobre o hot-words porque ele pode solucionar isso de forma diferentepor exemplo, ao invés de criar uma implementação para selecionar a palavra enquanto edita o texto, poderia ter um frame do lado do textarea.nesse frame teria um gerenciador de palavras.na medida que o usuario digita, quando achar conveniente, ele insere no gerenciador a palavra do textarea que deseja destacar.na prática, nem precisa digitar a palavra, apenas selecionar e fazer com que o javascript copie e cole automaticamente... bom, tah dificil excplicar, vou fzer um exmplo pra vcs entenderem

Compartilhar este post


Link para o post
Compartilhar em outros sites

<html>

<title></title>

<head>

<script language=javascript>

 

function getSel(obj_toCopy){

obj_toPaste = parent.frames[0].document.forms[0]['word'];

obj_count = document.forms[0]['hwc'];

//alert( obj_toCopy );

 

txt = false;

if (document.getSelection){

txt = document.getSelection();

}else{

if (document.selection){

txt = document.selection.createRange();

}

}

 

hwc = parseInt( obj_count.value );

tagName = 'HW-' + hwc;

word = txt.text;

txt.text = '[' + tagName + ']' + word + '[' + tagName + ']';

obj_toPaste.value = word;

obj_count.value = ( hwc + 1 );

}

</script>

</head>

<body>

<table border=1>

<form>

<input type=hidden name=hwc value=1>

<tr>

<td>

<textarea name=text cols=50 rows=10></textarea>

<input type=button value=choose onclick="java script:getSel(text);">

</td>

</tr>

</form>

<tr>

<td>

<iframe src=range-hotWordsFrame.html width=100% height=300></iframe>

</td>

</tr>

</table>

</body>

</html>

 

salve como "range-hotWordsFrame.html"

 

<html>

<title></title>

<head></head>

<body>

<table border=1>

<form>

<tr>

<td>

word<input type=text name=word size=25> <input type=text readonly name=number size=5>

<br />description<input type=text readonly name=decription size=50>

<br /><input type=submit value=add>

</td>

</tr>

</form>

</tr>

</table>

</body>

</html>

exemplo online:

 

http://imasters.japancase.com/range-hotWords.html

 

 

pra formatar o texto dentro do textarea você deve procurar por "html rich-text"

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.