Pesquisar na Comunidade
Mostrando resultados para as tags ''getselection()''.
Encontrado 1 registro
-
Editor de texto sem usar exeCommand com getSelection() onde tenho um loop sem sentido
Jazara postou um tópico no fórum Javascript
Sei que existem vários editores de texto online, mas pelo que percebi quase todos usam a função exeCommad que está declarada como descontinuada. Tenho um editor funcuina e bonito que fiz usando o comando anterior, mas já começou a deixar de funcionar em alguns dispositivos e seus navegadores. Com isto em vista comecei o trabalho de formiga de recriar o editor, já tive avanços interessantes e uns bugs de loop que não fazem sentido. Meu nível de javascrit é muito principiante e aprendi muita coisa com a necessidade e aplicação. Estou com dificuldades em entender todas as possibilidades da função getSelection() e talvez isso esteja me dando mais trabalho. Apesar disto o meu problema atual é um loop que não faz o menor sentido para mim na função PASTE (colar). Quando executo a colagem pela primeira vez ele cola certinho, mas puxa o ponteiro para o início do texto, mas o problema vem quando faço a segunda colagem que ele cria um loop postando duas vezes, se fizer uma terceira vez ele faz o loop 3 vezes e assim por diante... https://jsfiddle.net/alexandrejazara/v4s21gof/223/ Acima o código em desenvolvimento no momento. Abaixo a parte onde pega o texto para ser colado e que realizo um tratamento para eliminar qualquer tag vinda do WOrd ou de outra página de internet. window.addEventListener("keydown", function(e) { /* colar -> BUG!!! */ if (e.keyCode == 86 && (navigator.platform.match("Mac") ? e.metaKey : e.ctrlKey)) { alert("Colar?"); document.querySelector('[contenteditable]').addEventListener('paste', (e) => { e.preventDefault(); const text = (e.originalEvent || e).clipboardData.getData('text/plain'); // alert('PASTE!!! '+text); cp(class_limpa[1],text); }); } }); Aparentemente até a leitura da parte AZUL ele não faz o loop, mas quando habilito o segundo alert para verificar ele é executado pelo número de colagens que faço, se fizer uma ve ele roda uma vez, se precisar fazer uma segunda vez ele roda duas vezes e duplica o material colado e assim por diante. Alguém sabe me dizer o que pode ser ou me dizer o termo que devo estudar para aprender a resolver isso? Obrigado.