+ if (sel.anchorNode.contentEditable === 'true' && (
+ sel.anchorNode.innerHTML == '<br>' || !sel.anchorNode.innerHTML)) {
+ // when everything has been removed, add back <p><br></p>
+ var empty_p = document.createElement('P');
+ empty_p.appendChild(document.createElement('BR'));
+ if (anchorNode.childNodes.length) { // lone <br>
+ anchorNode.removeChild(anchorNode.childNodes[0]);
+ }
+ anchorNode.appendChild(empty_p);
+ var range = document.createRange();
+ range.setStart(empty_p, 0);
+ sel.removeAllRanges();
+ sel.addRange(range);
+ return;
+ }
+ if (event.originalEvent.inputType != "insertParagraph") return true;
+ if (sel.anchorNode.tagName == "DIV" && sel.anchorNode.innerHTML == "<br>") {
+ // new empty div got inserted, replace it with a <p>
+ var empty_p = document.createElement('P');
+ empty_p.appendChild(document.createElement('BR'));
+ var empty_div = sel.anchorNode;
+ empty_div.replaceWith(empty_p);
+ var range = document.createRange();
+ range.setStart(empty_p, 0);
+ sel.removeAllRanges();
+ sel.addRange(range);
+ }
+ if (sel.anchorNode.tagName == "LI" && sel.anchorNode.innerHTML == "<br>") {
+ // new empty li got inserted, insert a <p> within
+ var empty_p = document.createElement('P');
+ empty_p.appendChild(document.createElement('BR'));
+ var empty_li = anchorNode;
+ if (empty_li.childNodes.length) { // lone <br>
+ empty_li.removeChild(empty_li.childNodes[0]);
+ }
+ empty_li.appendChild(empty_p);
+ var range = document.createRange();
+ range.setStart(empty_p, 0);
+ sel.removeAllRanges();
+ sel.addRange(range);
+ }