JSFiddle - React, Tailwind, and code Playground
HTML
<div contenteditable="true">
Press return in here
</div>
JavaScript
document.onkeypress = function(e) {
var sel, textRange;
if (e.which == 13) {
e.preventDefault();
if (document.body.createTextRange) {
try {
document.execCommand("ms-beginUndoUnit", false, null);
} catch (e) {}
if (document.selection) {
textRange = document.selection.createRange();
textRange.text = "\r\n";
textRange.collapse(false);
textRange.select();
} else if (window.getSelection) {
sel = window.getSelection();
var range = sel.getRangeAt(0);
range.deleteContents();
var frag = document.createDocumentFragment();
frag.appendChild( document.createElement("br") );
var span = document.createElement("span");
span.innerHTML = " ";
frag.appendChild(span);
range.insertNode(frag);
range.selectNodeContents(span);
sel.removeAllRanges();
sel.addRange(range);
}
try {
document.execCommand("ms-endUndoUnit", false, null);
} catch (e) {}
} else {
document.execCommand("insertText", false, "\n");
}
}
};