摘要:但是,现在我只需要一个很基本的内容输入内容编辑的功能,如粗体斜体列表对齐等。的作用相当神奇,可以让或整个网页,以及等等元素设置为可编辑。现在,事情就很简单了,我们把要执行的命令放到属性中,然后编写简单的都可以很容易地完成编辑器功能了。
背景
我们平时用到的浏览器编辑器功能都会比较多,实现的代码逻辑也会非常复杂,往往是作为一个多带带插件被引入进来的。但是,现在我只需要一个很基本的内容输入内容编辑的功能,如:粗体、斜体、列表、对齐等。那要怎么办,直接引用个插件太臃肿了。
借助 HTML5 特性,所有的工具都已经可用,所有你需要做的只是配合他们编写一些非常简单的 JavaScript 代码调用就可以了。
开撸你需要两样东西,第一是:
contenteditable
contenteditable 是 HTML 中的一个属性,设置 HTML标签的 contenteditable=“true” 时,即可开启该元素的编辑模式。contenteditable 的作用相当神奇,可以让 div 或整个网页,以及 span 等等元素设置为可编辑。
我们最常用的输入文本内容是 input 与 textarea,使用 contenteditable 属性后,可以在div、table、p、span、body等等很多元素中输入内容。如果想要整个网页可编辑,可以在 body 标签内设置 contenteditable。contenteditable 已在 HTML5 标准中得到有效的支持.
第二样东西是一个功能特殊的函数:
execCommand
execCommand 让我们能够对 contenteditable 区域的内容做一些相当复杂的操作。如果你想了解更为详细的内容可以看这里:The Mozilla Docs。
从本质上讲, execCommand 有三个参数:
Command Name – 命令名称;
ShowDefaultUI – 未实现,所以最好设置为 false;
ValueArgument – 命令的参数;
多数情况下,ValueArgument 可以设置为 null,但有一种情况:当你要设置一行文本的标签的时候(h1,h2,p 等),你需要使用 formatBlock 命令,并把标签放到 ValueArgument 中。
现在,事情就很简单了,我们把 exexCommand 要执行的命令放到 data-role 属性中,然后编写简单的 JavaScript 都可以很容易地完成编辑器功能了。核心代码其实就10行:
$(function() {
$("#editControls a").click(function(e) {
switch($(this).data("role")) {
case "h1":
case "h2":
case "p":
document.execCommand("formatBlock", false, "<" + $(this).data("role") + ">");
break;
default:
document.execCommand($(this).data("role"), false, null);
break;
}
})
});
完整代码:
代码下载
原文:http://www.admin10000.com/doc...
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/81699.html
摘要:但是,现在我只需要一个很基本的内容输入内容编辑的功能,如粗体斜体列表对齐等。的作用相当神奇,可以让或整个网页,以及等等元素设置为可编辑。现在,事情就很简单了,我们把要执行的命令放到属性中,然后编写简单的都可以很容易地完成编辑器功能了。 背景 我们平时用到的浏览器编辑器功能都会比较多,实现的代码逻辑也会非常复杂,往往是作为一个单独插件被引入进来的。但是,现在我只需要一个很基本的内容输入内...
摘要:它的全称是数据驱动文档,并且它被称为一个互动和动态的数据可视化库网络。我们将使用文本编辑器和浏览器。出于测试目的,建议使用工具来检查和调试和,例如或。使矩形反映数据目前,我们阵列中的所有矩形沿轴具有相同的位置,并且不代表高度方面的数据。 欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由独木桥先生 发表于云+社区专栏 介绍 D3.js是一个JavaScript库。它的...
摘要:知乎上也有相关的讨论,开发的下一代编辑器莫非已经定义为上一代编辑器了吗。 这篇是我在知乎的回答,原文在这里:justjavac: VS Code、ATOM这些开源文本编辑器的代码实现中有哪些奇技淫巧? 研究 V8 比较多,也关注了一下 vscode 和 atom 的性能,每次 vscode、atom 的 change log 我都会看一遍。印象最深的是 vscode 1.14 的一次更...
摘要:在这个编辑器中,和是其中排名靠前的两个。是一个免费的轻量级编辑器和,用于和开发。对于免费的代码编辑器来说,是一个很好的选择。可以安装两个命令行实用程序,用于从启动编辑器,用于管理的软件包。 对于JavaScript程序员来说,目前有很多很棒的工具可供选择。本文将会讨论10个优秀的支持javascript,HTML5和CSS开发,并且可以使用Markdown进行文档编写的文本编辑器。为什...
阅读 1474·2023-04-25 19:00
阅读 4183·2021-11-17 17:00
阅读 1786·2021-11-11 16:55
阅读 1550·2021-10-14 09:43
阅读 3156·2021-09-30 09:58
阅读 879·2021-09-02 15:11
阅读 2144·2019-08-30 12:56
阅读 1420·2019-08-30 11:12
极致性价比!云服务器续费无忧!
Tesla A100/A800、Tesla V100S等多种GPU云主机特惠2折起,不限台数,续费同价。
NVIDIA RTX 40系,高性价比推理显卡,满足AI应用场景需要。
乌兰察布+上海青浦,满足东推西训AI场景需要