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 ...
随机推荐
- Java超类-java.lang.object
Java是面向对象的,Object是所有对象的超类(不是继承,也不是实现接口) Object类是所有Java类的祖先.每个类都使用 Object 作为超类.所有对象(包括数组)都实现这个类的方法. 如 ...
- letsencrypt续期 最简单的续期方法更新证书
Let's Encrypt申请的证书会有三个月的有效期,如何更方便的续期呢? 关于证书续期: 所谓letsencrypt续期,续期相当于重新申请一次证书,然后在服务器端将过期的证书替换掉即可.由于这个 ...
- Exploring Pyramids UVALive - 3516 (记忆化DP)
题意:给定一个序列 问有多少棵树与之对应 题目连接:https://cn.vjudge.net/problem/UVALive-3516 对于这一序列 分两种2情况 当前分支 和 其它分支 用df ...
- 2017-2018 ACM-ICPC, Asia Daejeon Regional Contest C(记忆化搜索)
C题 Problem C Game Map 思路: 之前暴力搜索写了好几发,一直超时,后面看其他人的题解发现要用记忆化搜索..直接暴力搜的话有太多重 复的计算. dist u 表示以u 为起点所能走的 ...
- 【agc001e】BBQ HARD(动态规划)
[agc001e]BBQ HARD(动态规划) 题面 atcoder 洛谷 题解 这些agc都是写的整场的题解,现在还是把其中一些题目单独拿出来发 这题可以说非常妙了. 我们可以把这个值看做在网格图上 ...
- Python 通过gevent实现协程
#coding:utf-8-*- '''协程(coroutine)又称微线程.纤程,是一种用户级的轻量级线程.协程有自己的寄存器上下文和栈.携程调度时,将寄存器上下文和栈 保存,在切换回来的时候恢复保 ...
- Oracle 11g DRCP连接方式——基本原理
学习Oracle是一个复杂.繁琐的过程.在浩如烟海的Oracle官方资料.新特性.MOS资料和各种Internal知识面前,我们总是觉得力不从心.不知所措.但是,这往往也就是我们不断坚持.积累和追寻的 ...
- git 中断 merge
git 版本 >= 1.6.1 git reset --merge git 版本 >= 1.7.4 git merge --abort
- maven构建SSM项目
对于小型项目来说,使用默认的maven配置项目即可,可是现在分布式项目越来越多,如果巧妙的使用maven部署项目这成了关键. maven的pom.jar.war: 要正确部署得对maven的pom.w ...
- Kubernetes 部署 1.9.7 高可用版
转载于https://codegreen.cn/2018/08/30/kubernetes-cluster-1.9.7/ 前言 在部署之前,首先感谢 手动搭建高可用的kubernetes 集群 博文的 ...