Vermeiden Sie das IE -zufriedenbare Element, um Absätze auf der Eingabetaste zu erstellen
-
20-09-2019 - |
Frage
Auf InternetExplorer erstellt ein zufriedenbares Div einen neuen Absatz (<p></p>
) Jedes Mal, wenn Sie die Eingabetaste drücken, während Firefox a erstellt <br/>
Schild. Ist es möglich, den IE zu zwingen, a einzulegen? <br/>
Anstelle eines neuen Absatzes?
Lösung
Ja, es ist möglich, die Einführung von Absätzen zu vermeiden, indem zuerst das Keydown -Ereignis gestoppt wird (window.event.stopPropagation();
) und dann die Zeichenfolge mit dem Einfügen einfügen HTML -Befehl.
Der IE hängt jedoch von diesen Divs ab, um Stile usw. festzulegenu003Cbr> s.
Ich schlage vor, Sie verwenden ein Projekt wie Tinymce oder andere Herausgeber und suchen Sie nach einem Editor, der sich so verhält, wie Sie möchten, da sie alle Arten von Problemumgehungen für verschiedene Browserprobleme haben. Vielleicht können Sie einen Editor finden, der verwendetu003Cbr> s...
Andere Tipps
Hier ist eine Lösung (verwendet jQuery). Nachdem Sie auf die Schaltfläche "Änderung zu BR" geklickt haben, die <br>
Tag wird anstelle der eingefügt <p></p>
Schild.
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);
}
Sie können immer lernen zu verwenden WECHSEL + EINTRETEN für einzelne Zeilenrücksetzt und EINTRETEN Für Absatzrückgabe. IE verhält sich in dieser Hinsicht wie MS -Wort.
Wechseln line-height
des <p>
im Bearbeitbaren <div>
Werke:
#editable_div p
{
line-height: 0px;
}
Wenn Sie es verwenden können, Fckeditor hat eine Einstellung dafür