分享

window.clipboardData实现剪切板操作

 三星蓝 2012-06-01

window.clipboardData

(2009-08-06 10:57:54)
标签:

杂谈

分类: 技术历程

    今天在学习标注工具的时候,看到一个新的对象window.clipboardData,学习下。

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

成员表

 

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

注释

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

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

示例

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

<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等格式,如果我想用这个方法一次传递多个参数,不可用(无法解决。)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多