window.clipboardData 剪贴板用法

来源:互联网 发布:中俄列车劫案知乎 编辑:程序博客网 时间:2024/05/29 13:11
今天在学习标注工具的时候,看到一个新的对象window.clipboardData,学习下。

    window.clipboardData的作用是在页面上将需要的东西复制到剪贴板上,提供了对于预定义的剪贴板格式的访问,以便在编辑操作中使用。

成员表

下面的表格列出了 clipboardData 对象引出的成员。

方法

 

方法描述clearData通过 dataTransfer 或clipboardData 对象从剪贴板删除一种或多种数据格式。getData通过 dataTransferclipboardData 对象从剪贴板获取指定格式的数据。setData以指定格式给 dataTransferclipboardData 对象赋予数据。

注释

clipboardData 对象是为通过编辑菜单、快捷菜单和快捷键执行的编辑操作所保留的。该对象使用系统剪贴板传送信息并保留至下一个编辑操作冲掉它。数据传送的格式特别适合于多次粘贴相同的数据。

此对象在 Microsoft® Internet Explorer 5 的脚本中可用。

示例

下面的例子使用了 clipboardData 对象的 setData 和 getData 方法通过快捷菜单执行剪切粘贴操作。

<SCRIPT> var bResult; // 选中要剪切的文本。在剪切事件中文本选中区的尾随空格导致剪 // 切选快捷菜单项目保持无效。 function fnLoad() { var r = document.body.createTextRange(); r.findText(oSource.innerText); r.select(); } // 启用剪切快捷菜单项目,该项目在 DIV 上时默认为无效 function fnBeforeCut() { event.returnValue = false; } // 以文本格式给 window.clipboardData 对象赋予数据。 // 将 setData 方法的结果 (Boolean) 显示在下面的输入框内。 function fnCut(){ event.returnValue = false; bResult = window.clipboardData.setData("Text",oSource.innerText); oSource.innerText = ""; tText.innerText += bResult; } // 启用粘贴快捷菜单项目,该项目在 DIV 上时默认也为无效 function fnBeforePaste() { event.returnValue = false; } // 在 onpaste 中取消 returnValue 以便输入文本,该操作有默认 // 的行为。 function fnPaste() { event.returnValue = false; oTarget.innerText = window.clipboardData.getData("Text"); } </SCRIPT> </HEAD> <BODY onload="fnLoad()" TOPMARGIN=0 LEFTMARGIN=0 BGPROPERTIES="fixed" BGCOLOR="#FFFFFF" LINK="#000000" VLINK="#808080" ALINK="#000000"> <DIV CLASS="clsSource" ID="oSource" onbeforecut="fnBeforeCut()" oncut="fnCut()">选中并剪切此文本</DIV> <DIV CLASS="clsTarget" ID="oTarget" onbeforepaste="fnBeforePaste()" onpaste="fnPaste()">将文本粘贴在这里</DIV><BR> <SPAN CLASS="clsData">setData 结果:</SPAN> <INPUT CLASS="clsText" ID="tText" TYPE="text" READONLY VALUE="" SIZE="6" TABINDEX="-1"> </BODY>
此特性需要 Microsoft® Internet Explorer 5.0 或以后版本。请单击下面的图标安装最新版本。然后重新装入此页再查看示例。
 
另外,对于工具中的参数传递,也许有另外的解决方法,即通过地址栏传递参数,然后在目标页面获取地址栏中传递的参数,然后再进行使用。(设想,未实施。)
 
通过实验发现一个问题,这种方法只能传递一个参数,如果用在页面间传递参数的时候。因为只有TEXT,URL,HTML等格式,如果我想用这个方法一次传递多个参数,不可用(无法解决。)

   兼容多种浏览器“复制到剪贴板”的解决方