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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值