fckeditor 中javascript做copy操作的写法

1. 如果是ie,copy到剪贴板自然好办,如果不是ie,这里使用了flash来做copy操作

//===============================Copy to clipboard=================================//

function CopyText(id) { 
    
//copyToClipboard(document.getElementById(id).value); 
    
if (document.getElementById(id
))     {
        var 
tocopy=document.getElementById(id).innerHTML
;
        
tocopy=tocopy.replace(/&/g"&"
); 
        
copy(tocopy
);
    }
}

function copy(text2copy) {
    if (
window.clipboardData
) { 
        
window.clipboardData.setData("Text",text2copy
); 
    } else {
        var 
flashcopier ‘flashcopier’

        if(!
document.getElementById(flashcopier
)) { 
            var 
divholder document.createElement(‘div’); divholder.id flashcopier

            
document.body.appendChild(divholder
); 
        } 
        
document.getElementById(flashcopier).innerHTML 

        var 
divinfo ‘<embed src="’+absbaseurl+‘images/others/_clipboard.swf" FlashVars="clipboard=’+escape(text2copy)+‘" width="0" height="0" type="application/x-shockwave-flash"></embed>’

        
document.getElementById(flashcopier).innerHTML divinfo
;
        
alert(jslang[72
]);
    } 
}

function copyToClipboard(meintext)
{
     if (
window.clipboardData

       {
       
alert("ie"
);
       
// the IE-manier
       
window.clipboardData.setData("Text"meintext
);
       
       
// waarschijnlijk niet de beste manier om Moz/NS te detecteren;
       // het is mij echter onbekend vanaf welke versie dit precies werkt:
       
}
       else if (
window.netscape

       { 
       
       
// dit is belangrijk maar staat nergens duidelijk vermeld:
       // you have to sign the code to enable this, or see notes below 
       
netscape.security.PrivilegeManager.enablePrivilege(‘UniversalXPConnect’
);
       
       
// maak een interface naar het clipboard
       
var clip Components.classes[‘@mozilla.org/widget/clipboard;1’].createInstance(Components.interfaces.nsIClipboard
);
       if (!
clip
) return;
       
alert("mozilla"
);
       
// maak een transferable
       
var trans Components.classes[‘@mozilla.org/widget/transferable;1’
]
                      .
createInstance(Components.interfaces.nsITransferable
);
       if (!
trans
) return;
       
       
// specificeer wat voor soort data we op willen halen; text in dit geval
       
trans.addDataFlavor(‘text/unicode’
);
       
       
// om de data uit de transferable te halen hebben we 2 nieuwe objecten 
       // nodig om het in op te slaan
       
var str = new Object
();
       var 
len = new Object
();
       
       var 
str Components.classes["@mozilla.org/supports-string;1"
]
                    .
createInstance(Components.interfaces.nsISupportsString
);
       
       var 
copytext=meintext
;
       
       
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
);
       
       }
       
alert("Following info was copied to your clipboard:\n\n" meintext
);
       return 
false
;
}

留下评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据