Vermeiden Sie das IE -zufriedenbare Element, um Absätze auf der Eingabetaste zu erstellen

StackOverflow https://stackoverflow.com/questions/2057881

  •  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?

War es hilfreich?

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);
}

Diese Links geholfen. Arbeitsbeispiel hier.

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top