Machen Sie eine <br> statt <div></div> durch drücken der EINGABETASTE auf einem contenteditable
Ich geschrieben habe, ein bisschen code in meine Tastatur event-handler einfügen <br>
in Reaktion auf das drücken der Enter-Taste:
event.preventDefault();
document.execCommand('InsertHTML', true, '<br>');
Funktioniert dies nur, wenn der cursor zwischen zwei Buchstaben, wenn Ihr am Ende brauche ich zwei <br>
-Elemente. Kann ich erkennen, wenn ich am Ende einer Zeile? Oder einige andere arbeiten die Idee für das Enter-problem?
Ich habe auch versucht zu fangen, der normale key-Events (wothout die Strg-Taste gedrückt) und erstellen Sie ein Tastatur-Ereignis mit JS, wo Sie die Enter-Taste gedrückt wird, zusammen mit der Strg. Aber diese schien das nicht funktionieren...
Muss es nur noch Funktionieren in Webkit/Safari...
InformationsquelleAutor der Frage Phil | 2010-06-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Um Ihr problem zu lösen, halten Sie immer eine br element als letztes element contenteditable div. Dadurch wird sichergestellt, vorhersagbares Verhalten bei der Injektion ein br-element vs. der Standard-browser, die Injektion von div-Elementen. Sie können die lastChild auf keyup und mouseup, um sicherzustellen, dass es ein br-element. Vorausgesetzt, Sie haben ein Dokument, wie:
Können Sie den folgenden JavaScript (w/jQuery 1.4+), um ein br-element als letztes element und injizieren ein br-element anstelle von div div:
Getestet auf Apple OS-X w/Google Chrome 7, Mozilla Firefox 3.6, Apple Safari 5). Versuchen Sie es mit ierange zu bekommen dies funktioniert in Windows Internet Explorer.
InformationsquelleAutor der Antwort Jake McGraw
Ich würde binden eine Funktion, um das keyup-Ereignis zu löschen, und ändern
Verwendung von regEx. Also selbst wenn es erzeugt seltsame markup, das es behoben wird.
Verwendung von jQuery:
InformationsquelleAutor der Antwort Bakaburg