JavaScript:document.execCommand()的用法
document.execCommand()的用法小记
一、语法
execCommand方法是执行一个对当前文档,当前选择或者给出范围的命令。处理Html数据时常用。
如下格式:document.execCommand(sCommand[,交互方式, 动态参数]) ,其中: sCommand:为指令参数(如下例中的"2D-Position"); 交互方式:参数如果是true的话将显示对话框,如果为false的话,则不显示对话框(下例中的"false"即表示不显示对话框);
动态参数:一般为一可用值或属性值(如下例中的"true")。
例如:
document.execCommand("2D-Position","false","true");
二、参数说明
说明:在firefox下支持不好,firefox需要三个参数写全不能省略。
下面列出的是指令参数及意义
| 指令参数(sCommand) | 意义 |
| 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 | 目前尚未支持。 |
| 打开打印对话框以便用户可以打印当前页。 | |
| Redo | 重做。 |
| Refresh | 刷新当前文档。 |
| RemoveFormat | 从当前选中区中删除格式化标签。 |
| RemoveParaFormat | 目前尚未支持。 |
| SaveAs | 将当前 Web 页面保存为文件。 |
| SelectAll | 选中整个文档。 |
| SizeToControl | 目前尚未支持。 |
| SizeToControlHeight | 目前尚未支持。 |
| SizeToControlWidth | 目前尚未支持。 |
| Stop | 停止。 |
| StopImage | 目前尚未支持。 |
| StrikeThrough | 目前尚未支持。 |
| Subscript | 目前尚未支持。 |
| Superscript | 目前尚未支持。 |
| UnBookmark | 从当前选中区中删除全部书签。 |
| Underline | 切换当前选中区的下划线显示与否。 |
| Undo | 撤消。 |
| Unlink | 从当前选中区中删除全部超级链接。 |
| Unselect | 清除当前选中区的选中状态。 |
三、示例
例1:isNaN是测试是否为数值型 ,限制输入只能为数值如:1981.121,允许最多有一个小数点
| <input type="text" name="text" onkeyup="if(isNaN(value))execCommand('undo')" /> |
例2:
|
<input type=button value=剪切 onclick=document.execCommand('Cut')> <input type=button value=拷贝 onclick=document.execCommand('Copy')> <input type=button value=粘贴 onclick=document.execCommand('Paste')> <input type=button value=撤消 onclick=document.execCommand('Undo')> <input type=button value=重做 onclick=document.execCommand('Redo') id=button2 name=button2> <input> <input type=button value=删除 onclick=document.execCommand('Delete')> <input type=button value=黑体 onclick=document.execCommand('Bold')> <input type=button value=斜体 onclick=document.execCommand('Italic')> <input type=button value=下划线 onclick=document.execCommand('Underline')> <input type=button value=停止 onclick=document.execCommand('stop')> <input type=button value=保存 onclick=document.execCommand('SaveAs')> <input type=button value=另存为 onclick=document.execCommand('Saveas',false,'c:\\test.htm')> <input type=button value=字体 onclick=document.execCommand('FontName',false,fn)> <input type=button value=字体大小 onclick=document.execCommand('FontSize',false,fs)> <input type=button value=刷新 onclick=document.execCommand('refresh',false,0)> |
使用的例子如下:
1、〖全选〗命令的实现 [格式]:document.execCommand(”selectAll”)
[说明]将选种网页中的全部内容! [举例]在之间加入: 全选
2、〖打开〗命令的实现
[格式]:document.execCommand(”open”)
[说明]这跟VB等编程设计中的webbrowser控件中的命令有些相似,大家也可依此琢磨琢磨。 [举例]在之间加入: 打开
3、〖另存为〗命令的实现 [格式]:document.execCommand(”saveAs”)
[说明]将该网页保存到本地盘的其它目录! [举例]在之间加入: 另存为
4、〖打印〗命令的实现
[格式]:document.execCommand(”print”) [说明]当然,你必须装了打印机! [举例]在之间加入:
打印
Js代码 下面列出的是指令参数及意义
//相当于单击文件中的打开按钮
document.execCommand(”Open”);
//将当前页面另存为
document.execCommand(”SaveAs”);
//剪贴选中的文字到剪贴板;
document.execCommand(”Cut”,”false”,null);
//删除选中的文字;
document.execCommand(”Delete”,”false”,null);
//改变选中区域的字体;
document.execCommand(”FontName”,”false”,sFontName);
//改变选中区域的字体大小;
document.execCommand(”FontSize”,”false”,sSize|iSize);
//设置前景颜色;
document.execCommand(”ForeColor”,”false”,sColor);
//使绝对定位的对象可直接拖动;
document.execCommand(”2D-Position”,”false”,”true”);
//使对象定位变成绝对定位;
document.execCommand(”AbsolutePosition”,”false”,”true”);
//设置背景颜色;
document.execCommand(”BackColor”,”false”,sColor);
//使选中区域的文字加粗;
document.execCommand(”Bold”,”false”,null);
//复制选中的文字到剪贴板;
document.execCommand(”Copy”,”false”,null);
//设置指定锚点为书签;
document.execCommand(”CreateBookmark”,”false”,sAnchorName);
//将选中文本变成超连接,若第二个参数为true,会出现参数设置对话框;
document.execCommand(”CreateLink”,”false”,sLinkURL);
//设置当前块的标签名;
document.execCommand(”FormatBlock”,”false”,sTagName);
//相当于单击文件中的打开按钮 document.execCommand(”Open”);
//将当前页面另存为
document.execCommand(”SaveAs”);
//剪贴选中的文字到剪贴板;
document.execCommand(”Cut”,”false”,null);
//删除选中的文字;
document.execCommand(”Delete”,”false”,null);
//改变选中区域的字体;
document.execCommand(”FontName”,”false”,sFontName);
//改变选中区域的字体大小;
document.execCommand(”FontSize”,”false”,sSize|iSize);
//设置前景颜色;
document.execCommand(”ForeColor”,”false”,sColor);
//使绝对定位的对象可直接拖动;
document.execCommand(”2D-Position”,”false”,”true”);
//使对象定位变成绝对定位;
document.execCommand(”AbsolutePosition”,”false”,”true”);
//设置背景颜色;
document.execCommand(”BackColor”,”false”,sColor);
//使选中区域的文字加粗;
document.execCommand(”Bold”,”false”,null);
//复制选中的文字到剪贴板;
document.execCommand(”Copy”,”false”,null);
//设置指定锚点为书签;
document.execCommand(”CreateBookmark”,”false”,sAnchorName);
//将选中文本变成超连接,若第二个参数为true,会出现参数设置对话框;
document.execCommand(”CreateLink”,”false”,sLinkURL);
//设置当前块的标签名;
document.execCommand(”FormatBlock”,”false”,sTagName);
关于document.execCommand: 要执行编辑命令,可调用 document.execCommand,并传递对应于命令 ID 的字符串。另外还有可选的第二个参数,该参数指定如果可以应用的话是否显示此命令的用户界面。传递整数 1 将显示用户界面,整数 0 将跳过它。这个参数通常不用于编辑命令。因为默认值为 0,所以假如您没有使用第三个参数(在这种情况下,还必须为第二个参数传递值),一般可以不管它。第三个参数也是可选的,在可应用的情况下,使用它来将任何所需参数传递给该命令。
Pixy方法受到IE的cache bug影响会闪烁。其实并没有说清楚这个问题,但其实该bug是有条件的,即IE的cache设置为Every visit to the page,而不是默认的Automatically。基本上,只有开发者才会把cache设置为每次访问检查更新,所以这个bug其实不会影响真正的用户(根据在winxpsp2的ie6下测试,虽然可能仍然调用了一次网络存取的api,但是并没有发生实际的请求,症状就是鼠标有极短时间的抖动,但是图像不会闪烁)。此外有人发现了一个未公开的方法来让IE对背景图进行缓存:
document.execCommand(”BackgroundImageCache”,false,true)
用这种方法甚至避免了api调用,貌似是直接缓存在IE内存中。
IE6下设置背景图片是不会被真正cache住的,就算服务器做了cache,如果想cache住只能~~~
做过UI设计和开发的人一定知道,IE(不包括IE7)会经常从服务器端重新载入背景图片,好端端的UI界面在IE(不包括IE7)中就这样被折腾着……
Erik发现了一个简单的解决办法(针对IE7以下的IE有效,其实在IE7中已经修复了这个Bug) 程序代码 程序代码
document.execCommand(”BackgroundImageCache”, false, true);
今天阅读Ext的源码时发现Jack Slocum已经考虑到了这一点,在Ext.js中给出了他的实现,在其它Ajax框架中应该还没有这种类似的代码,从这一个细节上就能看出Ext的全面~
程序代码 程序代码
var isIE = ua.indexOf(”msie”) > -1, isIE7 = ua.indexOf(”msie 7″) > -1; // remove css image flicker if(isIE && !isIE7){ try{ document.execCommand(”BackgroundImageCache”, false, true); }catch(e){} }
针对IE的背景缓存进行了修复,只是IE7中已经不存在这个现象了
程序代码 程序代码
window.isIE=navigator.appName.indexOf(”Microsoft”)==0;
if(isIE){ document.documentElement.addBehavior(”#default#userdata”);
document.execCommand(”BackgroundImageCache”,false,true);
JavaScript:document.execCommand()的用法的更多相关文章
- Javascript中document.execCommand()的用法
document.execCommand()方法处理Html数据时常用语法格式如下:document.execCommand(sCommand[,交互方式, 动态参数]) 其中:sCommand为指令 ...
- JS开发备忘笔记-- Javascript中document.execCommand()的用法
document.execCommand()方法处理Html数据时常用语法格式如下:document.execCommand(sCommand[,交互方式, 动态参数]) 其中:sCommand为指令 ...
- document.execCommand()的用法小记
项目中遇到金额输入框限制只能输入数字,输入特殊字符或者字母汉字时间隔不到1秒内容就会自动清空.跟正则纠缠多年的我初次见到,很是神奇-.- 代码实现: <input type="text ...
- 转载:document.execCommand()的用法小记
首先要说明的是在firefox下支持不好.2D-Position 允许通过拖曳移动绝对定位的对象. AbsolutePosition 设定元素的 position 属性为“absolute”(绝对). ...
- document.execCommand
document.execCommand 在firefox浏览器执行不好,但是在其他浏览器有时候使用会非常方便. 比如在input标签中使用: onkeyup="if(isNaN(value ...
- javascript的document.execCommand(转)
document.execCommand()方法处理html数据时常用语法格式如下: 代码: document.execCommand(sCommand[,交互方式, 动态参数]) 其 中:sComm ...
- javascript document.referrer 用法
document对象的referrer属性,返回导航到当前网页的超链接所在网页的URL. 举例: 1. a.html文件内容如下: <a href="b.html">浏 ...
- 简易博客编辑器:玩转document.execCommand命令
xhEditor是基于jQuery开发的跨平台轻量可视化XHTML编辑器,基于LGPL开源协议发布.今天就把它山寨一下. 上几张图,看看效果: 先做出菜单部分:发现是一张背景图片,所以用图片映射的方法 ...
- js document.createElement()的用法 (转)
document.createElement()的用法 分析代码时,发现自己的盲点--document.createElement(),冲浪一番,总结了点经验. document.createElem ...
随机推荐
- Redis分布式锁的实现
前段时间,我在的项目组准备做一个类似美团外卖的拼手气红包[第X个领取的人红包最大],基本功能实现后,就要考虑这一操作在短时间内多个用户争抢同一资源的并发问题了,类似于很多应用如淘宝.京东的秒杀活动场景 ...
- day5——Java 实现导出excel表 POI(转)
1.首先下载poi-3.6-20091214.jar,下载地址如下: http://download.csdn.net/detail/evangel_z/3895051 2.Student.java ...
- Python开发【第七章】:面向对象进阶
1.静态方法 通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普通的方法,可以在实例化后直接调用,并且在方法里可以通过self.调用实例变量或类 ...
- Hbase远程连接:Can't get the locations
当Java API远程连接出错:Can't get the locations 原先填入的是IP地址,后来改为HOSTS文件中配置的主机名问题解决,如下红色字体部分: conf.set("h ...
- SSH-keygen用法
很多朋友在用github管理项目的时候,都是直接使用https url克隆到本地,当然也有有些人使用 SSH url 克隆到本地.然而,为什么绝大多数人会使用https url克隆呢? 这是因为,使用 ...
- 一本通1630SuperGCD
1630:SuperGCD 时间限制: 1000 ms 内存限制: 524288 KB [题目描述] 来源:SDOI 2009 Sheng Bill 有着惊人的心算能力,甚至能用大脑计 ...
- sql问题--case-when
1. 有表如下,请使用查询语句得出相应结果 id job createdate 1 开发 2018-06-19 2 运维 2018-06-20 3 开发 2018-06-19 4 开发 2018-06 ...
- 【题解】 POJ 1201 Intervals(差分约束)
懒得复制,戳我戳我 Solution: 这道题就是一个板子题 抽象成第\(a\)至第\(b\)间选择数的个数为\(c\),我们就可以用前缀和来表示,这样就可以得到不等式\(s[b]-s[a-1]> ...
- 前端常用功能记录(二)—datatables表格
并不是所有的后台开发都有美工和前端工程师来配合做页面,为了显示数据并有一定的美感,jQuery的DataTables插件对于像我这样的前端菜鸟来说真是雪中送炭,当然对于专业的前端开发者来说它更是锦上添 ...
- CentOS6.7定制化制作ISO
CentOS6.7定制化制作ISO 以CentOS 6.7-minimal为例. 欢迎大家转载,并保留原文出处.内容若有错误或补充,请联系:szyzln@126.com 本文主要讲解如何在已有官方Ce ...