javascript 操作剪切板 ie firefox 兼容

来源:互联网 发布:淘宝上显示新品怎么弄 编辑:程序博客网 时间:2024/06/10 14:32

/**********************************************************
复制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;
}

原创粉丝点击