JavaScript基础之document.execCommand函数

execCommand函数语法

bool = document.execCommand(aCommandName, aShowDefaultUI, aValueArgument)

返回值

一个 Boolean ,如果是 false 则表示操作不被支持或未被启用。

参数解释

参数描述
aCommandName一个 DOMString ,命令的名称。可用命令列表请参阅 命令
aShowDefaultUI一个 Boolean, 是否展示用户界面,一般为 false。Mozilla 没有实现
aValueArgument一些命令(例如insertImage)需要额外的参数(insertImage需要提供插入image的url),默认为null

支持的命令

命令描述
2D-Position允许通过拖曳移动绝对定位的对象
AbsolutePosition设定元素的 position 属性为“absolute”(绝对)
BackColor设置或获取当前选中区的背景颜色
Bold切换当前选中区的粗体显示与否
Copy将当前选中区复制到剪贴板
CreateBookmark创建一个书签锚或获取当前选中区或插入点的书签锚的名称
CreateLink在当前选中区上插入超级链接,或显示一个对话框允许用户指定要为当前选中区插入的超级链接的 URL
Cut将当前选中区复制到剪贴板并删除之
Delete删除当前选中区
FontName设置或获取当前选中区的字体
FontSize设置或获取当前选中区的字体大小
ForeColor设置或获取当前选中区的前景(文本)颜色
FormatBlock设置当前块格式化标签
Indent增加选中文本的缩进
InsertButton用按钮控件覆盖当前选中区
InsertFieldset用方框覆盖当前选中区
InsertHorizontalRule用水平线覆盖当前选中区
InsertIFrame用内嵌框架覆盖当前选中区
InsertImage用图像覆盖当前选中区
InsertInputButton用按钮控件覆盖当前选中区
InsertInputCheckbox用复选框控件覆盖当前选中区
InsertInputFileUpload用文件上载控件覆盖当前选中区
InsertInputHidden插入隐藏控件覆盖当前选中区
InsertInputImage用图像控件覆盖当前选中区
InsertInputPassword用密码控件覆盖当前选中区
InsertInputRadio用单选钮控件覆盖当前选中区
InsertInputReset用重置控件覆盖当前选中区
InsertInputSubmit用提交控件覆盖当前选中区
InsertInputText用文本控件覆盖当前选中区
InsertMarquee用空字幕覆盖当前选中区
InsertOrderedList切换当前选中区是编号列表还是常规格式化块
InsertParagraph用换行覆盖当前选中区
InsertSelectDropdown用下拉框控件覆盖当前选中区
InsertSelectListbox用列表框控件覆盖当前选中区
InsertTextArea用多行文本输入控件覆盖当前选中区
InsertUnorderedList切换当前选中区是项目符号列表还是常规格式化块
Italic切换当前选中区斜体显示与否
JustifyCenter将当前选中区在所在格式化块置中
JustifyLeft将当前选中区所在格式化块左对齐
JustifyRight将当前选中区所在格式化块右对齐
LiveResize迫使 MSHTML 编辑器在缩放或移动过程中持续更新元素外观,而不是只在移动或缩放完成后更新
MultipleSelection允许当用户按住 Shift 或 Ctrl 键时一次选中多于一个站点可选元素
Outdent减少选中区所在格式化块的缩进
OverWrite切换文本状态的插入和覆盖
Paste用剪贴板内容覆盖当前选中区
Print打开打印对话框以便用户可以打印当前页
Refresh刷新当前文档
RemoveFormat从当前选中区中删除格式化标签
SaveAs将当前 Web 页面保存为文件
SelectAll选中整个文档
UnBookmark从当前选中区中删除全部书签
Underline切换当前选中区的下划线显示与否
Unlink从当前选中区中删除全部超级链接
Unselect清除当前选中区的选中状态

代码实例

<!DOCTYPE html>
<html>
<head>
<title>JavaScript--execCommand指令集</title>

<script>
<!--

/*

*该function执行copy指令

*/

function fn_doufucopy(){
edit.select();
document.execCommand('Copy');
}

/*
*该function执行paste指令
*/

function fn_doufupaste() { 
    tt.focus();
    document.execCommand('paste');
} 

/*
*该function用来创建一个超链接
*/

function fn_creatlink()
{
  document.execCommand('CreateLink',true,'true');//弹出一个对话框输入URL
  //document.execCommand('CreateLink',false,'http://www.51js.com');
}

/*
*该function用来将选中的区块设为指定的背景色
*/

function fn_change_backcolor()
{
  document.execCommand('BackColor',true,'#FFbbDD');//true或false都可以
}

/*
*该function用来将选中的区块设为指定的前景色,改变选中区块的字体大小,改变字体,字体变粗变斜
*/

function fn_change_forecolor()
{
//指定前景色
document.execCommand('ForeColor',false,'#BBDDCC');//true或false都可以
//指定背景色
document.execCommand('FontSize',false,7);   //true或false都可以
//字体必须是系统支持的字体
document.execCommand('FontName',false,'标楷体');   //true或false都可以
//字体变粗
document.execCommand('Bold');
//变斜体
document.execCommand('Italic');
}

/*
*该function用来将选中的区块加上不同的线条
*/
function fn_change_selection()
{
//将选中的文字加下划线
document.execCommand('Underline');
//在选中的文字上划粗线
document.execCommand('StrikeThrough');
//将选中的部分文字变细
document.execCommand('SuperScript');
//将选中区块的下划线取消掉
document.execCommand('Underline'); 
}

/*
  *该function用来将选中的区块排成不同的格式
  */

function fn_format()
{
//有序列排列
document.execCommand('InsertOrderedList');

//实心无序列排列
document.execCommand('InsertUnorderedList');

//空心无序列排列
document.execCommand('Indent');
}

/*
*该function用来将选中的区块剪下或是删除掉
*/

function fn_CutOrDel()
{

//删除选中的区块
//document.execCommand('Delete');

//剪下选中的区块
document.execCommand('Cut');
}

/*
*该function用来将选中的区块重设为一个相应的物件
*/

function fn_InsObj()
{
/*
  ******************************************
  * 以下指令都是为选中的区块重设一个object;
  * 如没有特殊说明,第二个参数true或false是一样的;
  * 参数三表示为该object的id;
  * 可以用在javascript中通过其指定的id来控制它
  ******************************************
*/

/*重设为一个button(InsertButton和InsertInputButtong一样,
只不前者是button,后者是input)*/

/*document.execCommand('InsertButton',false,"aa"); //true或false无效
document.all.aa.value="风舞九天";*/

//重设为一个fieldset
/*document.execCommand('InsertFieldSet',true,"aa");
document.all.aa.innerText="刀剑如梦";*/

//插入一个水平线
//document.execCommand('InsertHorizontalRule',true,"aa");

//插入一个iframe
//document.execCommand('InsertIFrame',true,"aa");

//插入一个InsertImage,设为true时需要图片,false时不需图片
//document.execCommand('InsertImage',false,"aa");

//插入一个checkbox
//document.execCommand('InsertInputCheckbox',true,"aa");

//插入一个file类型的object
//document.execCommand('InsertInputFileUpload',false,"aa");

//插入一个hidden
/*document.execCommand('InsertInputHidden',false,"aa");

alert(document.all.aa.id);*/

//插入一个InputImage
/*document.execCommand('InsertInputImage',false,"aa");

document.all.aa.src="F-a10.gif";*/

//插入一个Password
//document.execCommand('InsertInputPassword',true,"aa");

//插入一个Radio
//document.execCommand('InsertInputRadio',false,"aa");

//插入一个Reset
//document.execCommand('InsertInputReset',true,"aa");

//插入一个Submit
//document.execCommand('InsertInputSubmit',false,"aa");

//插入一个input text
//document.execCommand('InsertInputText',false,"aa");

//插入一个textarea
//document.execCommand('InsertTextArea',true,"aa");

//插入一个 select list box
//document.execCommand('InsertSelectListbox',false,"aa");

//插入一个single select
document.execCommand('InsertSelectDropdown',true,"aa");

//插入一个line break(硬回车??)
//document.execCommand('InsertParagraph');

//插入一个marquee
/*document.execCommand('InsertMarquee',true,"aa");

document.all.aa.innerText="bbbbb";*/

//用于取消选中的阴影部分
//document.execCommand('Unselect');

//选中页面上的所有元素
//document.execCommand('SelectAll');

}

/*

*该function用来将页面保存为一个文件

*/

function fn_save()
{
//第二个参数为欲保存的文件名
document.execCommand('SaveAs','mycodes.txt');

//打印整个页面
//document.execCommand('print');
}
--> 
</script>
</head>
<body>
<input id="edit" value="范例" NAME="edit"><br>
<button onclick="fn_doufucopy()" ID="Button1">Copy</button> <button onclick="fn_doufupaste()" ID="Button2">paste</button><br>
<textarea id="tt" rows="10" cols="50" NAME="tt"></textarea>
<hr>
<br>
浮沉聚散变化又再,但是总可卷土重来.<br>
天若有情天亦老,人间正道是沧桑.<br>
都怪我,太执着,却也等不到花开叶落.<br>
<br>
Please select above letters, then click following buttons:<br>
<hr>
<input type="button" value="创建CreateLink" onclick="fn_creatlink()" ID="Button3" NAME="Button3"><br>
<input type="button" value="改变文字背景色" onclick="fn_change_backcolor()" ID="Button4" NAME="Button4"><br>
<input type="button" value="改变文字前景色" onclick="fn_change_forecolor()" ID="Button5" NAME="Button5"><br>
<input type="button" value="给文字加线条" onclick="fn_change_selection()" ID="Button6" NAME="Button6"><br>
<input type="button" value="改变文字的排列" onclick="fn_format()" ID="Button7" NAME="Button7"><br>
<input type="button" value="删除或剪下选中的部分" onclick="fn_CutOrDel()" ID="Button8" NAME="Button8"><br>
<input type="button" value="插入Object" onclick="fn_InsObj()" ID="Button9" NAME="Button9"><br>
<input type="button" value="保存或打印文件" onclick="fn_save()" ID="Button10" NAME="Button10"><br>
<input type="button" value="测试Refresh属性" onclick="document.execCommand('Refresh')" ID="Button11"
NAME="Button11">
</body>
</html>

参考资料

  1. https://developer.mozilla.org/zh-CN/docs/Web/API/Document/execCommand
  2. https://www.w3cschool.cn/javascript/javascript-execcommand.html
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值