实现文本的复制(Firefox和IE都兼容)(一)

来源:互联网 发布:儿童网络安全教育文章 编辑:程序博客网 时间:2024/04/28 04:39

          首先介绍一个document方法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 目前尚未支持。
    * Subs cript 目前尚未支持。
    * Supers cript 目前尚未支持。
    * UnBookmark 从当前选中区中删除全部书签。
    * Underline 切换当前选中区的下划线显示与否。
    * Undo 目前尚未支持。
    * Unlink 从当前选中区中删除全部超级链接。
    * Unselect 清除当前选中区的选中状态。

       但是由于firefox的安全机制,里面很多的功能都被它限制了。剪贴板的访问就是其中之一。那么,我们就有只有一种方法:

 那就是绕过它的安全机制。我将在下一篇文章中讨论。

       在IE下问题就变得简单了:

<input id="input1" type="text" value="fdf"/>
<input type="button" value="拷贝" onclick="copy()"/>
<input type="text"/>
<script   language="javascript"> 
function copy(){
 var a = "";
 var input = document.getElementById('input1');
 if(input.createTextRange)
 input.select();
 if(document.execCommand)
 document.execCommand('Copy');
 }

  </script>

    我们还可以用另一种方式实现:看下一篇吧!

原创粉丝点击