作家
登录

不到200行JavaScript代码如何实现富文本编辑器

作者: 来源: 2018-01-05 16:05:01 阅读 我要评论

init() 初始化函数

【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞?


不到200行JavaScript代码若何实现富文本编辑器

前段时光在寻找一些关于富文本编辑器的材料,然后发清楚明了这个名为 Pell 的项目,它是一个所见即所得(WYSIWYG)的文本编辑器,固然它的功能很简单,然则令人吃惊的是它只有 1kb 大年夜小。而项目最核心的文件 pell.js 只有130行,即使加上其它部分,总的 js 数量也不到200行。这引起了我的兴趣,决定看看它的源码是若何做到这一点的。

项目标重要代码在 pell.js 文件中,其构造很简单,重要功能的实现依附于以下的几个部分

  • actions 对象
  • exec() 函数
  • init() 函数

Document.execCommand()

先大年夜最简单的部分看起, exec() 函数只有下面庞行:

它将 document.execCommand() 进行了一个简单的包装,Document.execCommand() 就是这个编辑器的核心,其语法如下

  1. bool = document.execCommand(aCommandName, aShowDefaultUI, aValueArgument) 
  • aCommandName 是表示想履行的敕令的字符串,比如:加粗 ‘bold’,创建链接 ‘createLink’,改变字体大年夜小 ‘fontSize’ 等等
  • aShowDefaultUI 是否显示默认的用户界面
  • aValueArgument 有些敕令须要额外的输入,如插入图片、链接时须要给出地址

文件中定义了一个名为 actions 的对象,对应的是下图对象老喔赡┞封一行按钮, actions 中的每个子对象都保存了一个按钮的属性。

部分代码:

  1. const actions = { 
  2.  
  3.     bold: { 
  4.  
  5.         icon: '<b>B</b>'
  6.  
  7.         title: 'Bold'
  8.  
  9.         result: () => exec('bold'
  10.  
  11.     }, 
  12.  
  13.     italic: { 
  14.  
  15.         icon: '<i>I</i>'
  16.  
  17.         title: 'Italic'
  18.  
  19.         result: () => exec('italic'
  20.  
  21.     }, 
  22.  
  23.     underline: { 
  24.  
  25.         icon: '<u>U</u>'
  26.  
  27.         title: 'Underline'
  28.  
  29.         result: () => exec('underline'
  30.  
  31.     }, 
  32.  
  33.     // … 
  34.  

这段代码中显示了名为 bold,italic,underline 的三个对象属性,对应于对象栏中前方的加粗、斜体、下划线按钮,可以看出它们的构造是雷同的,都有下列三个属性:

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)