下面我们来介绍一下javascript execCommand方法,可以说javascript execCommand是复文本框必不可少的方法。今天上午的文章js复文本函数,是用自己封装的函数方法来写的,通常项目中一般不这么写,复文本加粗,倾斜,下划线,字体等等方法,大多是用document.execCommand方法。
下面对document.execCommand方法做一下简单介绍:
当document对象被转换为设计模式的时候(选中,设置contentEditable等),document对象提供了一个execCommand方法,通过给这个方法传递参数命令可以操作可编辑区域的内容。这个方法的命令大多数是对document选中区域的操作 (如bold, italics等), 也可以插入一个元素(如增加一个a链接) 或者修改一个完整行 (如缩进).。当元素被设置了contentEditable,通过执行execCommand 方法可以对当前活动元素进行很多操作。
语法
execCommand(String aCommandName, Boolean aShowDefaultUI, String aValueArgument)
参数
String aCommandName //命令名称
Boolean aShowDefaultUI // 是否展示用户界面,默认为false。Mozilla没有实现
String aValueArgument // 一些命令需要一些额外的参数值(如insertimage需要提供这个image的url)。默认为null。
命令名称介绍(第一个参数)
backColor (用法:document.execCommand(”BackColor”,”false”,sColor); )
改变文档的背景颜色。 在styleWithCss模式,它影响的是包含元素的背景。 这个命令要求提供一个颜色值作为第三个参数 (Internet Explorer 使用这个命令设置文本背景色)
bold (用法: document.execCommand(”Bold”,”false”,null); )
对选中文本或者插入元素设置、取消粗体显示. (Internet Explorer 使用STRONG 标签 而不是 B标签。)
contentReadOnly
转化文档进入只读或者可编辑模式. 这个命令要求提供给一个boolean值给第3个参数(ie不支持)。
copy 用法:document.execCommand(”Copy”,”false”,null);
把当前选中区域复制 到系统剪贴板。使用这个命令需要首先在 user.js 接口中进行激活。
createLink
当有选中区域的时候,使用这个命令转化选中区域为一个锚点,需要提供一个URI给第3个参数. 这个URI必须至少包含一个字符,空白字符也可。(Internet Explorer 会创建一个URI为空的a标签)
cut 用法:document.execCommand(”Cut”,”false”,null);
剪切选中文本到剪切板. 同copy一样需要开启剪切板功能。
decreaseFontSize
给选中文本或者插入元素添加一个small标签。(Internet Explorer不支持)
delete
删除当前选中区域
enableInlineTableEditing
开启或禁用表的行和列的插入删除功能 ( Internet Explorer不支持)
enableObjectResizing
开启或禁用图片或者其他可resize元素的resize功能 ( Internet Explorer不支持)
fontName 用法:document.execCommand(”FontName”,”false”,sFontName);
改变选中文本或者插入元素的字体。需要给第3个参数提供一个字体值
fontSize 用法:document.execCommand(”FontSize”,”false”,sSize|iSize);
改变选中文本或者插入元素的字体大小。需要给第3个参数提供一个数字
foreColor
改变选中文本或者插入元素的字体颜色。需要给第3个参数提供一个颜色值
上面是最常用的命令,其他命令暂不列举!
看到上面的用法,大家心动了吧,我现在给大家举几个简单的例子:
demo1:
contenteditable="true" onmouseup="SetToBold ();">选择文本加粗,放开文本不加粗,哈哈哈,haorooms
demo2, 用iframe方法,模仿编辑器
onload="InitEditable ();">
首先在编辑器中选中文本
/>
/>
/>
点击加粗,我会变粗,选中,点击加粗,我会不加粗!
/>
editable.htm
Editable 例子
charset="utf-8" />
haorooms在编辑器中
demo3, 用iframe方法,模仿编辑器,用的是一个iframe啊,你可以复制上面的内容,代码如下,案例预览
onload="InitEditable ();">
First, write and select some text in the editor.
/>
/>
/>
You can use the following buttons to change the appearance of the selected text:
/>
/>
demo4,直接对文本进行操作,案例预览
用设置红色和蓝色的按钮,分别来操作文档中的文字哦!
/>
/>
/>
haorooms我是来呗选择的啊!
我是来被加粗的啊!
上面就是javascript execCommand 作为复文本框,是不是很强大啊!