Firefox下Clipboard的读写

 //Firefox下Clipboard的读写js脚本
/**************************************************
http://www.krikkit.net/howto_javascript_copy_clipboard.html
将字符串maintext复制到剪贴板
**************************************************/
function setClipboard(maintext) {
   if (window.clipboardData) {
      return (window.clipboardData.setData("Text", maintext));
   }
   else if (window.netscape) {
      netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
      var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
      if (!clip) return;
      var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
      if (!trans) return;
      trans.addDataFlavor('text/unicode');
      var str = new Object();
      var len = new Object();
      var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
      var copytext=maintext;
      str.data=copytext;
      trans.setTransferData("text/unicode",str,copytext.length*2);
      var clipid=Components.interfaces.nsIClipboard;
      if (!clip) return false;
      clip.setData(trans,null,clipid.kGlobalClipboard);
      return true;
   }
   return false;
}
/**************************************************
http://www.codebase.nl/index.php/command/viewcode/id/174
返回剪贴板的内容
**************************************************/
function getClipboard() {
   if (window.clipboardData) {
      return(window.clipboardData.getData('Text'));
   }
   else if (window.netscape) {
      netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
      var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
      if (!clip) return;
      var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
      if (!trans) return;
      trans.addDataFlavor('text/unicode');
      clip.getData(trans,clip.kGlobalClipboard);
      var str = new Object();
      var len = new Object();
      try {
         trans.getTransferData('text/unicode',str,len);
      }
      catch(error) {
         return null;
      }
      if (str) {
         if (Components.interfaces.nsISupportsWString) str=str.value.QueryInterface(Components.interfaces.nsISupportsWString);
         else if (Components.interfaces.nsISupportsString) str=str.value.QueryInterface(Components.interfaces.nsISupportsString);
         else str = null;
      }
      if (str) {
         return(str.data.substring(0,len.value / 2));
      }
   }
   return null;
}

 

     

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
clipboard源码是指用于处理系统剪贴板操作的代码。在许多图形化用户界面的应用程序中,剪贴板被用于在不同的应用程序之间交换数据。clipboard源码包括了读取剪贴板内容、将数据存储到剪贴板和清空剪贴板的功能。 首先,clipboard源码通常会使用操作系统提供的API来访问剪贴板。在Windows操作系统中,可以使用WinAPI的函数来读取和写入剪贴板。在Linux和Mac OS中,也有相应的API可供调用。 对于读取剪贴板内容的功能,clipboard源码会调用相应的API函数,将剪贴板中的数据转换成程序能够使用的格式,例如文本、图片、文件等。这个过程中,可能需要进行数据格式的转换和解析,以及错误处理等。 对于写入剪贴板的功能,clipboard源码会将程序中的数据转换成适用于剪贴板的格式,并调用相应的API函数将数据写入剪贴板。同样,需要处理数据格式的转换和错误处理。 此外,clipboard源码还会包括一些附加功能,例如清空剪贴板的操作。这个功能可以用来清除剪贴板中的数据,使得剪贴板变为空白状态。 综上所述,clipboard源码是实现剪贴板操作的代码,包括读取、写入和清空剪贴板的功能。它使用操作系统提供的API来访问剪贴板,并处理相关的数据格式转换和错误处理。对于开发图形化用户界面的应用程序来说,clipboard源码是一个重要的组成部分。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值