2010-10-27 10 views
10

No estoy seguro por qué, pero si tiene un elemento con contenteditable habilitado, la primera vez que ingresa un espacio, agregará una etiqueta <br> en el elemento. Si el elemento tiene un espacio por defecto (<p contenteditable="true">this is a test</p>), estará bien, pero tan pronto como el usuario acceda a esa barra espaciadora (o incluso copie + pegue un carácter de espacio), Firefox agrega <br _moz_dirty="" /> al <p>.Contenteditable agrega un <br> cuando alcanzo el espacio

¿Alguien tiene alguna idea de por qué o una solución simple? Esta es la primera vez que juego con contenteditable, así que mucho de esto es nuevo para mí. Por el momento, solo estoy usando $('br').remove() que parece estar funcionando, pero me encantaría una explicación y una forma adecuada de prevenirlo si alguien sabe.

+0

¿Esto todavía es reproducible? Nunca he encontrado un error en FF – YakovL

+0

Tengo el mismo problema, http://jsbin.com/xarirotali/edit?html,css,output Presione dos espacios al final de 'some text' e inspeccione el elemento p en FF y agregará un
. –

Respuesta

0

Utilizo preventDefault cuando el usuario realiza un retorno de carro. Tal vez podrías modificarlo para devolver un espacio normal cuando el usuario use la tecla espacio.

 if(e.keyCode==13 && e.shiftKey){ //enter && shift 
      e.preventDefault(); //Prevent default browser behavior 
      //this.html(this.html+"<br>"); 
     } 
     if(e.keyCode==13){ //enter 
      e.preventDefault(); //Prevent default browser behavior 
     } 
+0

esto funcionó para mí. – Veera

+0

Intenté este método, pero Chrome me está dando este error: 'Unbeught ReferenceError: e is not defined'. ¿Sabes por qué? –

+0

No puede evitar que Firefox anexe el
con e.preventDefault() –

Cuestiones relacionadas