H5富文本编辑器之初始化用于编辑的DOM-遁地龙卷风

Posted 遁地龙卷风

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了H5富文本编辑器之初始化用于编辑的DOM-遁地龙卷风相关的知识,希望对你有一定的参考价值。

使用H5的全局属性contenteditable可以让DOM元素及其子元素变的可编辑

<div  contenteditable id="editor">
   
</div>

样式代码

技术分享
html,
body {
  overflow: hidden;
  width: 100%;
  height: 100%;
}
* {
  margin: 0;
  padding: 0;
}
#editor {
  width: 100%;
  height: 100%;
  outline: none;
  padding-left: 15px;
}
View Code

 

* chrome 49下测试有效

以下方式使得用户初始输入的文本内容在p元素的包裹下

<div  contenteditable id="editor" spellcheck="false">
    <p><br/></p>
</div>

默认规则如下

技术分享
否则将直接作为#editor元素的文本节点,即
<div  contenteditable id="editor" spellcheck="false">
    文本内容
</div>
同事点击Enter将新增div元素,即
<div  contenteditable id="editor" spellcheck="false">
    文本内容
    <div></div>
</div>
View Code

#editor中的所用元素都是可被删除的,当#editor为空元素时,用户再次输出内容还会应用默认规则,这里要监听这一状态,发生时将<p><br/></p>添入其中,并且定位光标到p元素的最后

定位光标代码

技术分享
function cursorToEnd(element){
    
    element.focus();
    var range = window.getSelection();

    range.selectAllChildren(element);
    range.collapseToEnd();
    
}
View Code

window.getSelection() IE9已经支持

不定位可能发生以下情况

技术分享
<div  contenteditable id="editor" spellcheck="false">
    111111
    <p><br/></p>
</div>
View Code

 

以上是关于H5富文本编辑器之初始化用于编辑的DOM-遁地龙卷风的主要内容,如果未能解决你的问题,请参考以下文章

移动端h5踩坑之 显示富文本内容设置图片宽度

Ueditor百度富文本编辑器添加h5手机端预览功能

mysql SQL优化之嵌套查询-遁地龙卷风

iOS富文本编辑器

tinymce富文本编辑器在iview的modal框中显示的问题

富文本编辑器 kindeditor