contenteditable可编辑区域设置换行实现技巧实例
作者:TangJang
这篇文章主要为大家介绍了contenteditable可编辑区域设置换行实现技巧实例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
contenteditable 在需要自定义插入换行符 br
1.方式一,添加换行符 br 进行换行
其中在末尾换行时需要增加两个br,如不增加则第一次不会产生换行
<div class="inputContent scroll" contenteditable="true" @keydown="inputContent_keydown" ></div>
function inputContent_keydown(e) { // 1.快捷键判断 回车加ctrl if( e.keyCode==13 && e.ctrlKey) { if (document.selection) {//IE9以下 document.selection.createRange().pasteHTML(content); } else { let doc_fragment = document.createDocumentFragment(); // 创建br let new_ele = document.createElement('br'); doc_fragment.appendChild(new_ele); // 获取当前选择 let range = window.getSelection().getRangeAt(0); range.deleteContents(); // 判断是否是最后一个元素如果是多加一个 if (!hasNextSibling(range.endContainer) && range.startOffset == range.startContainer.length) { let extra_break = document.createElement('br'); doc_fragment.appendChild(extra_break); } range.insertNode(doc_fragment); //创建新范围 range = document.createRange(); range.setStartAfter(new_ele); range.collapse(true); //插入 let sel = window.getSelection(); sel.removeAllRanges(); sel.addRange(range); } } } function hasNextSibling(node) { if (node.nextElementSibling) { return true; } while (node.nextSibling) { node = node.nextSibling; if (node.length > 0) { return true; } } return false; }
2.方式二,使用 document.execCommand
(已废弃,但大部分浏览器仍然支持)document.execCommand('insertLineBreak')
以上就是contenteditable 可编辑区域设置换行的详细内容,更多关于contenteditable 可编辑区域设置换行的资料请关注脚本之家其它相关文章!