JavaScript execCommand函数

execCommand函数命令

execCommand方法是执行一个对当前文档,当前选择或者给出范围的命令。处理Html数据时常用

如下格式:document.execCommand(sCommand[,交互方式, 动态参数]) ,其中:sCommand为指令参数(如下例中的”2D-Position”),交互方式参数如果是true的话将显示对话框,如果为false的话,则不显示对话框(下例中的”false”即表示不显示对话框),动态参数一般为一可用值或属性值(如下例中的”true”)。

document.execCommand("2D-Position","false","true");

下面列出的是指令参数及意义

2D-Position 允许通过拖曳移动绝对定位的对象。

AbsolutePosition 设定元素的 position 属性为“absolute”(绝对)。

BackColor 设置或获取当前选中区的背景颜色。

BlockDirLTR 目前尚未支持。

BlockDirRTL 目前尚未支持。

Bold 切换当前选中区的粗体显示与否。

BrowseMode 目前尚未支持。

Copy 将当前选中区复制到剪贴板。

CreateBookmark 创建一个书签锚或获取当前选中区或插入点的书签锚的名称。

CreateLink 在当前选中区上插入超级链接,或显示一个对话框允许用户指定要为当前选中区插入的超级链接的 URL。

Cut 将当前选中区复制到剪贴板并删除之。

Delete 删除当前选中区。

DirLTR 目前尚未支持。

DirRTL 目前尚未支持。

EditMode 目前尚未支持。

FontName 设置或获取当前选中区的字体。

FontSize 设置或获取当前选中区的字体大小。

ForeColor 设置或获取当前选中区的前景(文本)颜色。

FormatBlock 设置当前块格式化标签。

Indent 增加选中文本的缩进。

InlineDirLTR 目前尚未支持。

InlineDirRTL 目前尚未支持。

InsertButton 用按钮控件覆盖当前选中区。

InsertFieldset 用方框覆盖当前选中区。

InsertHorizontalRule 用水平线覆盖当前选中区。

InsertIFrame 用内嵌框架覆盖当前选中区。

InsertImage 用图像覆盖当前选中区。

InsertInputButton 用按钮控件覆盖当前选中区。

InsertInputCheckbox 用复选框控件覆盖当前选中区。

InsertInputFileUpload 用文件上载控件覆盖当前选中区。

InsertInputHidden 插入隐藏控件覆盖当前选中区。

InsertInputImage 用图像控件覆盖当前选中区。

InsertInputPassword 用密码控件覆盖当前选中区。

InsertInputRadio 用单选钮控件覆盖当前选中区。

InsertInputReset 用重置控件覆盖当前选中区。

InsertInputSubmit 用提交控件覆盖当前选中区。

InsertInputText 用文本控件覆盖当前选中区。

InsertMarquee 用空字幕覆盖当前选中区。

InsertOrderedList 切换当前选中区是编号列表还是常规格式化块。

InsertParagraph 用换行覆盖当前选中区。

InsertSelectDropdown 用下拉框控件覆盖当前选中区。

InsertSelectListbox 用列表框控件覆盖当前选中区。

InsertTextArea 用多行文本输入控件覆盖当前选中区。

InsertUnorderedList 切换当前选中区是项目符号列表还是常规格式化块。

Italic 切换当前选中区斜体显示与否。

JustifyCenter 将当前选中区在所在格式化块置中。

JustifyFull 目前尚未支持。

JustifyLeft 将当前选中区所在格式化块左对齐。

JustifyNone 目前尚未支持。

JustifyRight 将当前选中区所在格式化块右对齐。

LiveResize 迫使 MSHTML 编辑器在缩放或移动过程中持续更新元素外观,而不是只在移动或缩放完成后更新。

MultipleSelection 允许当用户按住 Shift 或 Ctrl 键时一次选中多于一个站点可选元素。

Open 目前尚未支持。

Outdent 减少选中区所在格式化块的缩进。

OverWrite 切换文本状态的插入和覆盖。

Paste 用剪贴板内容覆盖当前选中区。

PlayImage 目前尚未支持。

Print 打开打印对话框以便用户可以打印当前页。

Redo 目前尚未支持。

Refresh 刷新当前文档。

RemoveFormat 从当前选中区中删除格式化标签。

RemoveParaFormat 目前尚未支持。

SaveAs 将当前 Web 页面保存为文件。

SelectAll 选中整个文档。

SizeToControl 目前尚未支持。

SizeToControlHeight 目前尚未支持。

SizeToControlWidth 目前尚未支持。

Stop 目前尚未支持。

StopImage 目前尚未支持。

StrikeThrough 目前尚未支持。

Subscript 目前尚未支持。

Superscript 目前尚未支持。

UnBookmark 从当前选中区中删除全部书签。

Underline 切换当前选中区的下划线显示与否。

Undo 目前尚未支持。

Unlink 从当前选中区中删除全部超级链接。

Unselect 清除当前选中区的选中状态。

document.ExecCommand() – html实例

<HTML><HEAD><TITLE>JavaScript--execCommand指令集</TITLE><SCRIPTLANGUAGE="javascript">//该function执行copy指令functionfn_doufucopy(){
    edit.select();
    document.execCommand('Copy');
}

//该function执行paste指令functionfn_doufupaste() { 
    tt.focus();
    document.execCommand('paste');
} 

//该function用来创建一个超链接functionfn_creatlink(){
    document.execCommand('CreateLink',true,'true');//弹出一个对话框输入URL//document.execCommand('CreateLink',false,'http://www.w3cschool.cn');
}

//该function用来将选中的区块设为指定的背景色functionfn_change_backcolor(){
    document.execCommand('BackColor',true,'#FFbbDD');//true或false都可以
}

//该function用来将选中的区块设为指定的前景色,改变选中区块的字体大小,改变字体,字体变粗变斜functionfn_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用来将选中的区块加上不同的线条functionfn_change_selection(){
    //将选中的文字加下划线
    document.execCommand('Underline');
    //在选中的文字上划粗线
    document.execCommand('StrikeThrough');
    //将选中的部分文字变细
    document.execCommand('SuperScript');
    //将选中区块的下划线取消掉
    document.execCommand('Underline'); 
}

//该function用来将选中的区块排成不同的格式functionfn_format(){
    //有序列表
    document.execCommand('InsertOrderedList');
    //实心无序列表
    document.execCommand('InsertUnorderedList');
    //空心无序列表
    document.execCommand('Indent');
}

//该function用来将选中的区块剪下或是删除掉functionfn_CutOrDel(){
    //删除选中的区块
    //document.execCommand('Delete');
    //剪下选中的区块
    document.execCommand('Cut');
}

//该function用来将选中的区块重设为一个相应的物件functionfn_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用来将页面保存为一个文件functionfn_save(){
    //第二个参数为欲保存的文件名
    document.execCommand('SaveAs','mycodes.txt');
    //打印整个页面
    //document.execCommand('print');
}
</SCRIPT></HEAD><body><inputid="edit"value="范例"NAME="edit"><br><buttononclick="fn_doufucopy()"ID="Button1">Copy</button><buttononclick="fn_doufupaste()"ID="Button2">paste</button><br><textareaid="tt"rows="10"cols="50"NAME="tt"></textarea><hr><br>
         浮沉聚散变化又再,但是总可卷土重来.<br>
         天若有情天亦老,人间正道是沧桑.<br>
         都怪我,太执着,却也等不到花开叶落.<br><br>
         Please select above letters, then click following buttons:<br><hr><inputtype="button"value="创建CreateLink"onclick="fn_creatlink()"ID="Button3"NAME="Button3"><br><inputtype="button"value="改变文字背景色"onclick="fn_change_backcolor()"ID="Button4"NAME="Button4"><br><inputtype="button"value="改变文字前景色"onclick="fn_change_forecolor()"ID="Button5"NAME="Button5"><br><inputtype="button"value="给文字加线条"onclick="fn_change_selection()"ID="Button6"NAME="Button6"><br><inputtype="button"value="改变文字的排列"onclick="fn_format()"ID="Button7"NAME="Button7"><br><inputtype="button"value="删除或剪下选中的部分"onclick="fn_CutOrDel()"ID="Button8"NAME="Button8"><br><inputtype="button"value="插入Object"onclick="fn_InsObj()"ID="Button9"NAME="Button9"><br><inputtype="button"value="保存或打印文件"onclick="fn_save()"ID="Button10"NAME="Button10"><br><inputtype="button"value="测试Refresh属性"onclick="document.execCommand('Refresh')"ID="Button11"NAME="Button11"></body></HTML>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JavaScript 的复制可以通过以下两种方法实现: 1.使用 `document.execCommand('copy')` 方法:该方法可以通过创建一个临时的 `<textarea>` 元素,并将所需复制的文本设置为该元素的内容,最后调用 `document.execCommand('copy')` 方法即可实现复制。 ```javascript function copyText(text) { var textarea = document.createElement("textarea"); textarea.value = text; document.body.appendChild(textarea); textarea.select(); document.execCommand("copy"); textarea.remove(); } ``` 2.使用剪切板 API:该 API 可以在不创建临时元素的情况下直接操作剪切板,不过需要注意兼容性问题,该 API 只在最新版本的浏览器中支持。 ```javascript async function copyText(text) { try { await navigator.clipboard.writeText(text); console.log("Text copied to clipboard"); } catch (err) { console.error("Failed to copy text: ", err); } } ``` ### 回答2: JavaScript中的复制操作可以分为浅复制和深复制两种方式。 浅复制是指创建一个新的副本,但新的对象只是对原始对象的引用。这意味着在改变副本时,原始对象也会被修改。在JavaScript中,可以使用Object.assign()方法来实现浅复制。例如,我们有一个名为obj的对象,可以使用以下代码创建一个浅复制的副本: ```javascript var copyObj = Object.assign({}, obj); ``` 深复制是指创建一个全新的对象,它的属性和值与原始对象完全相同,但是它们不共享相同的引用。这样在改变副本时,原始对象不会被修改。在JavaScript中,可以使用JSON.parse()和JSON.stringify()方法来实现深复制。例如,我们有一个名为obj的对象,可以使用以下代码创建一个深复制的副本: ```javascript var copyObj = JSON.parse(JSON.stringify(obj)); ``` 需要注意的是,JSON.stringify()只能对可以序列化为JSON格式的数据进行深复制,如果原始对象包含复杂的数据类型如函数、日期对象等,它们在深复制后会变成字符串。另外,使用JSON方法进行深复制的性能可能会受到影响,特别是在处理大型对象时。 总结起来,JavaScript的复制可以通过浅复制和深复制来实现,根据具体的需求选择适合的方法。浅复制适用于简单的对象,而深复制适用于复杂的对象或需要保持数据独立性的场景。 ### 回答3: JavaScript中的复制操作可以用多种方式实现。 1. 使用变量赋值:最简单的方式是使用一个变量来存储需要复制的值。例如,我们可以将一个数组复制到另一个数组中: ```javascript let array1 = ['apple', 'banana', 'orange']; let array2 = array1; // 将array1的值赋给array2 ``` 在这种方式下,`array1`和`array2`会引用同一个数组对象。因此,如果我们修改`array1`,`array2`也会受到影响。 2. 使用展开运算符(spread operator):展开运算符可以将一个可迭代对象(如数组或字符串)展开成独立的元素,从而创建一个新的数组或字符串。例如: ```javascript const array1 = ['apple', 'banana', 'orange']; const array2 = [...array1]; // 使用展开运算符复制array1的值到array2 ``` 在这种方式下,`array2`会复制`array1`的值,而不是引用同一个数组对象。因此,修改`array1`不会影响`array2`。 3. 使用Array.from()方法:`Array.from()`方法可以将一个类似数组的对象或可迭代对象转换为一个真正的数组。通过使用此方法,可以复制一个数组。例如: ```javascript const array1 = ['apple', 'banana', 'orange']; const array2 = Array.from(array1); // 使用Array.from()复制array1的值到array2 ``` 与使用展开运算符的方式类似,`array2`会复制`array1`的值而不是引用同一个数组对象。 无论使用哪种方式,复制操作都可以帮助我们在JavaScript中创建一个与原始值相同的副本,从而进行各种操作而不影响原始值。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值