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

2024-06-19 21:58

本文主要是介绍H5富文本编辑器之初始化用于编辑的DOM-遁地龙卷风,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

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

样式代码

ContractedBlock.gif ExpandedBlockStart.gif
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>

默认规则如下

ContractedBlock.gif ExpandedBlockStart.gif
否则将直接作为#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元素的最后

定位光标代码

ContractedBlock.gif ExpandedBlockStart.gif
function cursorToEnd(element){element.focus();var range = window.getSelection();range.selectAllChildren(element);range.collapseToEnd();}
View Code

window.getSelection() IE9已经支持

不定位可能发生以下情况

ContractedBlock.gif ExpandedBlockStart.gif
<div  contenteditable id="editor" spellcheck="false">111111<p><br/></p>
</div>
View Code

 打赏支持方式

1003740-20170707165059659-1356240404.png

这篇关于H5富文本编辑器之初始化用于编辑的DOM-遁地龙卷风的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1076265

相关文章

时间服务器中,适用于国内的 NTP 服务器地址,可用于时间同步或 Android 加速 GPS 定位

NTP 是什么?   NTP 是网络时间协议(Network Time Protocol),它用来同步网络设备【如计算机、手机】的时间的协议。 NTP 实现什么目的?   目的很简单,就是为了提供准确时间。因为我们的手表、设备等,经常会时间跑着跑着就有误差,或快或慢的少几秒,时间长了甚至误差过分钟。 NTP 服务器列表 最常见、熟知的就是 www.pool.ntp.org/zo

JavaWeb系列二十: jQuery的DOM操作 下

jQuery的DOM操作 CSS-DOM操作多选框案例页面加载完毕触发方法作业布置jQuery获取选中复选框的值jQuery控制checkbox被选中jQuery控制(全选/全不选/反选)jQuery动态添加删除用户 CSS-DOM操作 获取和设置元素的样式属性: css()获取和设置元素透明度: opacity属性获取和设置元素高度, 宽度: height(), widt

uniapp H5打开地图

manifest.json文件,源码视图找到H5添加下面内容 "h5" : {"sdkConfigs" : {"maps" : {"amap" : {"key" : "**********************","securityJsCode" : "****************************","serviceHost" : ""}}}} 高德开放平台 申请时选择(W

使用Sublime Text 2编辑CoffeeScript

Sublime Text 2很好很强大,咱就用它来编辑Coffee代码吧。 安装Sublime Text 2过程就略过了。   CoffeeScript作者是推荐使用TextMate编辑CoffeeScript的。但是TextMate收费,并且对中文支持不好。如果你不在意这两个问题,那么强烈推荐你使用TextMate,并关注CoffeeScript作者的TextMate

在浏览器中打开预览sublime text当前所编辑文件的方法和快捷键设置

配置在Chrome,Firefox中打开 安装 SideBarEnhancements 然后通过ctrl + k, ctrl + b打开侧边栏,在侧边栏的文件中右击,找到 open width -> edit applications 然后在这里边设置firefox打开的方式。 application : 路径要修改为自己默认安装的路径。 [     {

Class 对象在执行引擎中的初始化过程

一个 class 文件被加载到内存中需要经过 3 大步:装载、链接、初始化。 装载 装载是指 Java 虚拟机查找 .class 文件并生成字节流,然后根据字节流创建 java.lang.Class 对象的过程。 链接 链接过程分为 3 步:验证、准备、解析。 验证: 初始化 这是 class 加载的最后一步,这一阶段是执行类构造器方法的过程,并真正初始化类变量。 1.文件格式检验:检

H5唤醒APP方法,H5唤醒不了App跳下载页

H5唤醒APP方法,H5唤醒不了App跳下载页 let ua = window.navigator.userAgent.toLowerCase();let src = {iphone: /iphone/i.test(ua),android: /android/i.test(ua),windows: /windows/i.test(ua),weixin: /micromessenger/i.te

Python中使用PyQT5库时报错:没有Qt平台插件可以初始化

一、发现问题:无限易pythonGo打开执行的时候报:“没有Qt平台插件可以初始化,请重新安装应用程序。”的错误,点击确定后无限易崩溃闪退。 二、解决问题: 1、重新安装依赖,打开CMD输入pip list,查看Qt5库是否已安装,如果不确定是否完整安装可以再次安装一遍。 2、配置环境变量(注意是用户变量),变量名:QT_QPA_PLATFORM_PLUGIN_PATH 变量值:在CM

Anaconds3安装jieba 用于pycharm

1、从官网下载jieba压缩包 https://pypi.org/project/jieba/ 2、将压缩包解压到anaconda的pkgs目录。 (譬如我的如下 3、打开anaconda prompt 参考:https://blog.csdn.net/xavier_muse/article/details/94440563?utm_medium=distribute.pc_relevant