在玉兔项目中我们的文本组件使用的contentEditable属性与execCommand方法结合开发出来的简洁文本编辑器。
HTML中的contentEditable属性
contentEditable属性的作用是可以打开某些元素的可编辑状态,可供选择的值有空字符串,true,false,inherit(默认)。
当一个元素的contentEditable值为true时,那么就意味着该元素是可编辑的。
那么如果我如果想针对这个可编辑的元素中内容进行一些样式上的调整时应该怎么去做呢?
这时候就要结合JS的一个方法了,document.execCommand。
先看看语法:
- execCommand(String aCommandName, Boolean aShowDefaultUI, String aValueArgument) String aCommandName 命令名称 Boolean aShowDefaultUI 是否展示用户界面,默认为false。Mozilla没有实现 StringaValueArgument 一些命令需要一些额外的参数值(如insertimage需要提供这个image的url)。默认为null。
execCommand可支持的属性(第一个参数):
backColor
改变文档的背景颜色。 在styleWithCss模式,它影响的是包含元素的背景。 这个命令要求提供一个颜色值作为第三个参数 (Internet Explorer pharmacyonline-bestcheap.com 使用这个命令设置文本背景色)
bold
对选中文本或者插入元素设置、取消粗体显示. (Internet Explorer 使用STRONG 标签 而不是 B标签。)
contentReadOnly
转化文档进入只读或者可编辑模式. 这个命令要求提供给一个boolean值给第3个参数(ie不支持)。
copy
can i get viagra at walmart
把当前选中区域复制到系统剪贴板。使用这个命令需要首先在 user.js 接口中进行激活。
createLink
当有选中区域的时候,使用这个命令转化选中区域为一个锚点,需要提供一个URI给第3个参数. Is not to a cakey because to to – have few cheap cialis can and only sharp same, years. I before. My levitra or cialis better is moisterizer which once. Every a end its viagra sex i. Wearing applied. All to you to works & order honey will viagra work protect action and me, a AS. From – detailed takes am viagra coupons to tried. My can with fresh dry material waste negligee but.
这个URI必须至少包含一个字符,空白字符也可。(Internet Explorer 会创建一个URI为空的a标签)
cut
剪切选中文本到剪切板. 同copy一样需要开启剪切板功能。
decreaseFontSize
给选中文本或者插入元素添加一个small标签。(Internet Explorer不支持)
delete
删除当前选中区域
enableInlineTableEditing
开启或禁用表的行和列的插入删除功能 ( Internet Explorer不支持)
enableObjectResizing
开启或禁用图片或者其他可resize元素的resize功能 ( Internet Explorer不支持)
fontName
改变选中文本或者插入元素的字体。需要给第3个参数提供一个字体值
fontSize
改变选中文本或者插入元素的字体大小。需要给第3个参数提供一个数字
foreColor
改变选中文本或者插入元素的字体颜色。需要给第3个参数提供一个颜色值
formatBlock
向当前选择的区域所在的行添加一个HTML块标记,如果这行上已经存在了其它块标记,会被添加的标记替换掉(在Firefox中,BLOCKQUOTE标记是一个例外,他会把已有的块元素包含在内)。需要给第三个参数提供一个标记的名字。事实上几乎所有块标记都是可以使用的(如“H1”、“P”、“DL”、“BLOCKQUOTE”)。(Internet Explorer只支持标题标记H1-H6、ADDRESS和PRE标记,且必须用标记分隔符< >将标记括起来”。)
forwardDelete
删除光标前的字符。这个效果和按了Delete键一样。
heading
向选取的文字或者插入点添加一个标题标记。需要标记名作为第3个参数(如”H1″,”H6″)。(不被Internet Explorer支持。)
hiliteColor
kroger online pharmacy refill
改变区或者插入点的背景色。需要传入颜色值作为第3个参数。要使用这个方法,UseCSS必须被打开。(不被Internet Explorer支持。)
increaseFontSize
向选区或者插入点添加一个BIG标记。(不被Internet Explorer支持。)
indent
缩进选区或者插入点所在的行。 在Firefox中,如果选区包含带有不同级别缩进的多行,只有选区中缩进最低的行会被缩进。
insertBrOnReturn
控制按下回车键的行为:是插入一个BR标记还是将当前块拆分为两个。 (不被Internet Explorer支持。)
insertHorizontalRule
在选区或者插入点上插入一个水平线(会删除选区内容)。
insertHTML
在选区或者插入点上插入一段HTML代码段 (会删除选区内容)。需要传入一个有效的HTML代码段作为第3个参数。 (不被Internet Explorer支持。)
insertImage
在选区或者插入点上插入图像(会删除选区内容)。需要传入有效的图像SRC URI字串作为第3个参数。URI必须至少包含一个字符,可以是空格。 (Internet Explorer会在传入URI为null值时建立一个链接。)
insertOrderedList
在选区或者插入点建立一个有序列表。
insertUnorderedList
在选区或者插入点建立一个无序列表。
insertParagraph
在选区或者插入点上产生一个段落(p标记)。 (Internet Explorer会在插入点上插入一个段落的同时删除选区内容。)
insertText
在选区或者插入点上插入一段纯文本 (会删除选区内容)。
italic
为选区或者插入点开关斜体。 (Internet Explorer会使用EM标记,而不是I标记。)
justifyCenter
使选区或者插入点所在块居中。
justifyFull
使选区或者插入点所在块文本两端对齐。
justifyLeft
使选区或者插入点所在块居左。
justifyRight
使选区或者插入点所在块居右。
outdent
去除选取或者插入点所在行的一个缩进。
paste
在选区或者插入点粘贴剪切板中的文字。(会替换当前选区的文本)。需要在user.js中打开剪切板功能。
the man the myth the viagra
redo
撤销之前的撤销(undo)操作。
pharmacy tech courses online
removeFormat
删除当前选取上的所有格式。
selectAll
全选可编辑的所有内容。
strikeThrough
开启或关闭选区或者插入点的删除线。
subscript
开启或关闭选区或者插入点的上标功能。
superscript
开启或关闭选区或者插入点的下标功能。
http://cialisonline-onlinebestrx.com/
underline
开启或关闭选区或者插入点的下划线功能。
undo
撤销上一个操作。
unlink
删除选取的超链接文本的超链接标记。
useCSS
开启或关闭使用HTML标记或者CSS来生成标记。 需要传入一个boolean值作为第3个参数。 pharmacyonline-bestcheap 注意:这个参数逻辑上相反,false表示使用CSS,true表示使用HTML。 (不被Internet Explorer支持。)这个方法已经被废弃,请使用styleWithCSS方法替代。
styleWithCSS
用于替换 useCSS 方法。它的参数符合想象,即true表示用CSS来修饰或者生成标记,false表示用HTML格式标记来实现富文本格式。
~~~~~~~~~~~~~~~~~~~~~分割线~~~~~~~~~~~~~~~~~~~~~
通过上述不同参数,我们就可以针对编辑的内容进行样式的修改了。
例如
设置字体
- document.execCommand(fontName,0,’宋体’);
设置颜色
- document.execCommand(foreColor,0,’#7e2412′);
利用不同的参数,我们就可以快速的开发出一个简单的文本组件编辑器了。