Home  >  Article  >  Web Front-end  >  Support multiple browsers (IE, Firefox, Opera) clipboard copy function revised version_javascript skills

Support multiple browsers (IE, Firefox, Opera) clipboard copy function revised version_javascript skills

WBOY
WBOYOriginal
2016-05-16 18:58:011413browse

It should be noted that
signed.applets.codebase_principal_support must be set in firefox
Enter about:config in the address bar of the firefox browser and enter signed.applets.codebase_principal_support in the filter, double-click and set it to true support. Because Firefox does not support script manipulation of the clipboard by default.
Because the browser that does not support anything is the most secure browser.


[Ctrl A Select all Note: If you need to introduce external Js, you need to refresh to execute
]


The following is ie How to read the information in the clipboard in firefox The code is as follows:


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("Your firefox security restrictions restrict you from clipboard operations, please open 'about: config'Set signed.applets.codebase_principal_support' to true' and try again, the relative path is firefox root directory/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;
}


The following is the code to write to the clipboard under ie, firefox The code is as follows:


copy2Clipboard=function(txt){
if(window.clipboardData){
window.clipboardData. clearData();
window.clipboardData.setData("Text",txt);
}
else if(navigator.userAgent.indexOf("Opera")!=-1){
window .location=txt;
}
else if(window.netscape){
try{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
}
catch( e){
alert("Your firefox security restrictions restrict you from clipboard operations. Please open 'about:config' and set signed.applets.codebase_principal_support' to true' and try again. The relative path is the firefox root directory / grprefs/all.js");
return false;
}
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=txt;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);
}
}

For specific applications, you can refer to the code of Script House. <script> function copyToClipboard(txt) { if(window.clipboardData) { window.clipboardData.clearData(); window.clipboardData.setData("Text",txt); alert("复制成功!"); } else if(navigator.userAgent.indexOf("Opera")!= -1) { window.location = txt; } else if (window.netscape) { try { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); } catch (e) { alert("您的firefox安全限制限制您进行剪贴板操作,请打开'about:config'将signed.applets.codebase_principal_support'设置为true'之后 重试,具体可以参考http://www.jb51.net/article/16705.htm"); return false; } 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 = txt; 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); } } copyToClipboard("http://www.jb51.net"); </script>
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn