Pergunta

Tudo que eu preciso é ser capaz de detectar quando o texto é caiu em uma área de texto. Eu, então, assumir que o texto e fazer coisas com ele e limpar o textarea. Pode haver muitas destas textareas e expectativas muito altas de interface do usuário, de modo polling é um último recurso.

Para o IE, "onfocus" faz o truque, uma vez que este evento é acionado depois que o usuário cai material no textarea.

Para o Firefox, eu não posso encontrar um evento que funciona. Eu tentei onmouseup e onchange .. não sei mais o que tentar de lá. Eu odiaria ter que consultar o textarea para o conteúdo. Ajuda muito apreciada. Obrigado.

Edit: Para esclarecimento, "caiu" significa texto que o usuário seleciona (geralmente) a partir da página, mas não importa onde, arrasta-lo, e ele cai no textarea. Este não é o mesmo que Ctrl + V, ou clique direito colar (que tomar dois métodos diferentes de detecção, Aliás), ou (obviamente) tipagem para a área de texto. Especificamente, é o aspecto "queda" de arrastar e soltar. Eu realmente não sei outra forma de expressá-lo.

Eu sinto esta questão foi afirmado vez com precisão. Para humor me, suponha que eu quis dizer qualquer uma das outras operações em um textarea que todos optaram por ação. Se eu quis dizer "colando", você não acha que eu teria mencionado algo sobre colando no título ou no conteúdo da minha pergunta? O mesmo vale para digitação em uma textarea. Mas, talvez, todos vocês simplesmente não me conhece bem o suficiente para saber que eu digito o que quero dizer, em vez de coisas mistakingly digitando apenas um pouco relacionadas com o que quero dizer.

Foi útil?

Solução 2

Polling parece ser o único caminho a percorrer.

Quando uma operação de arrastar + Gota é iniciado dentro do navegador, ao que parece para cancelar tudo o que está acontecendo. Você pode testemunhar isso colocando "onmouseover" eventos em algo na página, em seguida, iniciar uma operação de DnD e arrastando-o. Os eventos não irá fogo.

Parece apenas uma coincidência de como o navegador internamente alças "drag and drop", que faz com que onfocus () para ser disparados para o textarea no IE e Safari. Duvido que haja muito definido na especificação W3 ... não que isso importe, W3 é uma porcaria, e além disso ninguém adere a ele completamente.

Na minha pergunta eu disse ao luxo de escoar a textarea após cada uso, então eu sinto que polling para: textarea.value.length> 0 é quase nenhum custo e não deve ser muito de uma preocupação de desempenho

Mas, infelizmente, tem especificamente a ver com deixar cair o conteúdo em uma área de texto.

Down-mod longe para acalmar a sua dor.

Outras dicas

Para o Firefox, isso funciona para mim:

window.addEventHandler("dragdrop", function(event) {alert("Drop it like it's hot!")}, true)

não funciona no Safari, no entanto. Não tentei IE.

Se você quiser que o seu textarea para reagir a ser texto caiu, colado ou digitadas, sua única solução seria um botão. Mesmo um polling temporizador o conteúdo não irá ajudá-lo.

Você menciona que você deseja que o usuário seja capaz de digitar texto no textarea. E você mencionar que você quer apagar o texto, sempre que o evento é acionado. Não há nenhuma maneira possível para o navegador para saber que o usuário tenha terminado de digitar. Você deve confiar em uma ação específica.

Agora, para a queda ou colar, você pode contar com os eventos mouseup e KeyUp, a fim de detectar isso.

O que você quer dizer com "caiu"? Você está falando de uma pasta (^ V) operação? Se assim for a resposta de Aron é realmente correta, você receberá keydown / keyup (e o valor será legível em keyup).

A chamada de retorno genérico que vai acontecer em qualquer atualização de uma entrada é 'onchange' - você pode tentar isso. Note que quando digitação, não são chamados até que você termine e unfocus a entrada, por isso, se você precisar de atualizações instantâneas em ambos digitação e outras formas de entrada, você ainda precisa 'onkeyup' também.

Editar re esclarecimento: IMO 'onchange' deve ser disparado quando um drag-and-drop faz com que o conteúdo a ser adicionado a uma área de texto; Eu considero isso um bug do navegador que não é (no Firefox, pelo menos). Eu só posso concordar, neste caso, que o escrutínio é tudo o que resta.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top