Sur InternetExplorer, un DIV contentEditable crée un nouveau paragraphe (<p></p>
) chaque fois que vous appuyez sur Entrée alors que Firefox crée une balise <br/>
. Est-il possible de forcer IE à insérer un <br/>
au lieu d'un nouveau paragraphe?avoid ie élément contentEditable pour créer des paragraphes sur la touche Entrée
Répondre
Oui, il est possible d'éviter l'insertion de paragraphes en arrêtant d'abord l'événement keydown (window.event.stopPropagation();
) puis en insérant la chaîne à l'aide de l'insertion HTML command.
Cependant, IE dépend de ce divs pour les styles de réglage etc. et vous aurez des problèmes en utilisant <br> s.
Je vous suggère d'utiliser un projet comme TinyMCE or other editors et de rechercher un éditeur qui se comporte comme vous le souhaitez, car ils ont toutes sortes de solutions de contournement pour différents problèmes de navigateur. Peut-être que vous pouvez trouver un éditeur qui utilise <br> s ...
Si vous pouvez l'utiliser, FCKEditor a un cadre pour cette
est ici une solution (utilise jQuery). Après avoir cliqué sur le bouton "Changer en BR", la balise <br>
sera insérée à la place de la balise <p></p>
.
Html:
<div id='editable' contentEditable="true">
This is a division that is content editable. You can position the cursor
within the text, move the cursor with the arrow keys, and use the keyboard
to enter or delete text at the cursor position.
</div>
<button type="button" onclick='InsertBR()'>Change to BR</button>
<button type="button" onclick='ViewSource()'>View Div source</button>
Javascript:
function InsertBR()
{
$("#editable").keypress(function(e) {
if (e.which == 13)
{
e.preventDefault();
document.selection.createRange().pasteHTML("<br/>")
}
});
}
function ViewSource()
{
var div = document.getElementById('editable');
alert('div.innerHTML = ' + div.innerHTML);
}
utilise 'insertNode()' au lieu de 'pasteHTML()' pour IE11 + et cross browser comme mentionné [ici] (http://stackoverflow.com/questions/6690752/insert-html-at-caret-in-a-contentitable -div/6691294 # 6691294) –
Vous pouvez toujours apprendre à utiliser SHIFT +ENTER pour les retours en ligne simple et ENTER pour les retours de paragraphe. IE se comporte comme MS Word à cet égard.
Modification du line-height
du <p>
dans les œuvres <div>
modifiables:
#editable_div p
{
line-height: 0px;
}
- 1. Pourquoi l'élément contentEditable rejette-t-il la touche Entrée?
- 2. Autoriser la touche Entrée pour se connecter à asp.net?
- 3. Comment obtenir la valeur de div contentEditable dans IE
- 4. IE 8 - formulaire ASP.NET ne pas soumettre lorsque l'utilisateur appuie sur la touche entrée
- 5. ASP.Net ImageButton Volant Entrée touche Appuyez sur
- 6. SuggestBox GWT montrant toutes les options sur la touche Entrée
- 7. VB.net touche Entrée
- 8. Arrêter la soumission de l'extendeur PopModular sur la touche Entrée
- 9. LATEX: Comment créer des paragraphes alignés à gauche et auteurs alignés droit des paragraphes
- 10. jquery saisie semi-automatique touche entrée
- 11. Avoid jvm warmup
- 12. iPad: Gestionnaire d'événements pour la touche "Suivant"/"Entrée"?
- 13. Comment définir le rappel pour la touche Entrée de GtkTextView?
- 14. Comment ignorer la touche Entrée dans RichTextBox
- 15. est-il un moyen d'utiliser entrée ("Appuyez sur une touche pour continuer") sur la version 2.6
- 16. Utiliser la touche Entrée pour vérifier CheckBoxes en C# .NET
- 17. Entrée touche pressée gestionnaire d'événements
- 18. Firefox 3.03 et contentEditable
- 19. Entrée Textarea - comment traiter les paragraphes et les titres?
- 20. Appuyez sur la touche de capture sans placer un élément d'entrée sur la page?
- 21. Désactiver la détection automatique URL pour les éléments avec le drapeau « contentEditable » dans IE
- 22. nl2br pour les paragraphes
- 23. Division de la chaîne à la touche Entrée
- 24. ASP.NET: Appeler la méthode codebehind sur Entrée Appuyez sur la touche dans le formulaire
- 25. Comment naviguer entre les champs avec la touche Entrée
- 26. touche Entrée soumettre wont forme dans IE6
- 27. HTML: contentEditable trouble
- 28. Capturer la touche Entrée pour utiliser un bouton cliquez avec le javascript
- 29. comment créer une touche de raccourci pour afficher la fenêtre?
- 30. Comment désactiver le comportement de soumission automatique lorsque vous appuyez sur la touche Entrée?
Cette stratégie pauses d'annulation. Chaque fois que vous appuyez sur Entrée, vous modifiez le DOM, de sorte que l'utilisateur ne peut plus utiliser le menu Annuler pour annuler la modification! –
La manipulation du DOM à l'aide des commandes NE brise PAS l'annulation. Chaque commande peut être annulée. Bien sûr, vous devez éviter des choses comme div.innerHTML = "foo"; –