Live Clipboard网络控件是一个DHTML的控件,使用Live Clipboard XML的数据格式,它为与网页相关的数据提供复制/粘贴的功能。它由以下的组件组成:
1. 用来显示Live Clipboard图标的UI元素。
2. 表示Live Clipboard对象模型的Javascript对象。
3. 处理Live Clipboard XML数据序列化和反序列化的Javascript。
4. 用于检索数据拷贝,为粘贴准备数据和当控件被选中时发出通知的Javascript回调函数登记。
它是专门设计来使用标准Javascript和CSS技术以“把粘贴板带进网络”并使得它能在尽可能多的浏览器中工作。目前,它已经支持IE6,IE7 beta2预览版和PC/Mac版的Firefox。微软表示会尽快添加对其他浏览器的支持。这个控件不依赖于任何客户端应用程序的安装或者浏览器插件,并且,如果用户没有粘贴操作的话,这个控件是不会访问粘贴板里面的内容的,这样做似乎可以避免用户数据的泄漏。
Live Clipboard工作原理
通过点击带有“.png”背景图片的粘贴板图标,这个控件把一个透明的(opacity=0)输入元素放置到一个包含的div元素中。当用户通过点击或者右击这个图标时,通过注册的copyCallback函数,这个控件脚本就可以获得要拷贝的数据。这个回调函数由网页">开发人员实现,并返回一个包含需要拷贝数据的WebClipData对象。跟着,这个控件脚本把这些数据转化为Live Clipboard XML格式。
当用户从弹出菜单或浏览器的编辑菜单选择“拷贝”命令,或者同时按ctrl+c中时,选择输入的内容就会粘贴到粘贴板中。同样的,如果用户发出一个“粘贴”命令时,输入值就会被目前粘贴板上的内容所取代。在这种情况下,控件脚本检测到输入值已经被改变,它就把Live Clipboard XML格式的值反串行化到WebClipData对象中,并把这个对象传递到pasteCallback函数中。