Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

267
Visualizações
Contenteditable elimina los espacios en blanco finales en Firefox, pero no en Chrome

Tengo un elemento <p> simple como contenteditable con una función de formato, que formatea el texto sobre la marcha (en el evento de entrada) y mueve el signo de intercalación al final del texto (porque la actualización de HTML interno en contenteditable mueve el signo de intercalación al principio de el texto).

Entonces, en Chrome todo funciona bien, el texto se formatea a medida que escribe, pero cuando usa Firefox, los espacios en blanco finales se eliminan a medida que escribe, por lo que realmente no puede escribir dos palabras separadas, porque cada vez que presiona espacio al final del primera palabra, se recorta.

¿Alguna idea de por qué el comportamiento es diferente en Firefox?

Violín: https://jsfiddle.net/mt8cp2sd/

 const content = document.getElementById('content'); content.innerHTML = 'Type text here'; function formatText(text) { return text.replaceAll('#', '<b>#</b>'); } content.addEventListener('input', () => { content.innerHTML = formatText(content.innerText); let range = document.createRange(); range.selectNodeContents(content); range.collapse(false); let selection = window.getSelection(); selection.removeAllRanges(); selection.addRange(range); });
 #content { border: solid 1px #555; }
 <html> <body> <p id="content" contenteditable> </p> </body> </html>

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Firefox agrega <br> al ingresar un espacio, mientras que Chrome agrega &nbsp; .

Puede configurar la propiedad css de white-space de su contenido editable en contenteditable -moz-pre-space para solucionar esto.

A continuación se muestra el código de trabajo:

 const content = document.getElementById('content'); function formatText(text) { return text.replaceAll('#', '<b>#</b>'); } content.addEventListener('input', () => { content.innerHTML = formatText(content.innerText); let range = document.createRange(); range.selectNodeContents(content); range.collapse(false); let selection = window.getSelection(); selection.removeAllRanges(); selection.addRange(range); }); let data = ''; content.innerHTML = 'Type text here';
 #content { border: solid 1px #555; white-space: -moz-pre-space; }
 <html> <body> <p id="content" contenteditable> </p> </body> </html>

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda