2009-01-11 13 views
4

J'utilise une application qui incorpore le contrôle IE pour afficher le contenu. Je change ce contenu pour contenir un élément <div contentEditable="True">Hello World</div>. Cela fonctionne bien et je peux éditer le contenu de cette div, mais appuyer sur Entrée est rejeté avec un bip.Pourquoi l'élément contentEditable rejette-t-il la touche Entrée?

Lorsque j'ajoute un élément textarea à cette page, la touche Entrée fonctionne et je peux ajouter des lignes, mais pas dans l'élément contentEditable. Lorsque j'attache un événement à cet élément, je vois qu'appuyer sur la touche Entrée déclenche un événement keyDown, mais pas un keyPress.

Quelqu'un a une idée de ce qui pourrait le causer?

Merci,
splintor

+0

Le document fonctionne-t-il correctement (comme prévu) dans un navigateur normal? – Borgar

+0

Oui - dans un navigateur normal, cela fonctionne parfaitement bien. – splintor

+0

ma solution fonctionne pour moi, vous donnez un indice pour résoudre mon problème pour cette upvote –

Répondre

0

La plupart des éléments HTML ne tiennent pas compte des espaces. Y compris un \ r ou \ n dans un élément DIV ou similaire est simplement ignoré.

+0

Mais lorsque fait dans une fenêtre séparée du navigateur, il n'y a pas de problème. Le navigateur traduit pressings à
s. – splintor

0

J'ai vérifié dans IE et Firefox, elle a parfaitement fonctionné

0

Certains autres où vous attachez l'événement KeyDown au document. Supprimez-le ou ajoutez un événement keydown à editable to stopPropagation.

$('#target').keydown(function(e) { 
e.stopPropagation(); 
});