javascript 操作剪切板 ie firefox 兼容

/**********************************************************
复制maintext到贴切板
**********************************************************
*/
function setClipboard(maintext)
{
    
if (window.clipboardData)
     {
        
return (window.clipboardData.setData("Text", maintext));
     }
    
else
     {
        
if (window.netscape)
         {
            
try{
             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;
             }
            
catch(e)
             {
                 alert(
"您的firefox安全限制限制您进行剪贴板操作,请打开'about:config'将signed.applets.codebase_principal_support'设置为true'之后重试,相对路径为firefox根目录/greprefs/all.js");
                
return false;
             }
         }
     }
    
return false;
}
/**********************************************************
粘贴剪切板的内容
**********************************************************
*/
function getClipboard()
{
    
if (window.clipboardData)
     {
        
return (window.clipboardData.getData('text'));
     }
    
else
     {
        
if (window.netscape)
         {
            
try
             {
                 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();
                 trans.getTransferData(
"text/unicode", str, len);
             }
            
catch (e)
             {
                 alert(
"您的firefox安全限制限制您进行剪贴板操作,请打开'about:config'将signed.applets.codebase_principal_support'设置为true'之后重试,相对路径为firefox根目录/greprefs/all.js");
                
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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值