支持ie與FireFox的剪切板操作代碼
更新時間:2009年09月28日 18:08:09 作者:
支持ie與FireFox的剪切板代碼,包括讀取與寫入剪切板的實現(xiàn)代碼。
復(fù)制代碼 代碼如下:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>支持ie與FireFox的剪切板代碼</title>
<script type="text/javascript">
function setCopy(_sTxt){
try{
if(window.clipboardData){
window.clipboardData.setData("Text", _sTxt);
} else if(window.netscape) {//FireFox搞得真復(fù)雜呀
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 = _sTxt;
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);
}
}catch(e){}
}
</script>
</head>
<body>
<input type="button" onclick="setCopy('hello');" value="復(fù)制" />
<div>
Firefox/3.0.14下可以運行<br />
Firefox/3.5.3下無效<br />
不過多考慮這一塊了。
</div>
</body>
</html>
下面是ie firefox 讀取剪切板中的信息的方法
復(fù)制代碼 代碼如下:
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'設(shè)置為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;
}
下面是 ie,firefox下 寫入剪切板的代碼
復(fù)制代碼 代碼如下:
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("您的firefox安全限制限制您進行剪貼板操作,請打開'about:config'將signed.applets.codebase_principal_support'設(shè)置為true'之后重試,相對路徑為firefox根目錄/greprefs/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);
}
}
具體的應(yīng)用,可以參考腳本之家的代碼。
相關(guān)文章
echarts柱狀圖坐標(biāo)軸內(nèi)容顯示不全的兩種解決辦法
本文主要介紹了echarts柱狀圖坐標(biāo)軸內(nèi)容顯示不全的兩種解決辦法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05JavaScript中apply方法的應(yīng)用技巧小結(jié)
這篇文章給大家總結(jié)了在js中apply方法的一些應(yīng)用技巧,通過這些技巧對大家日常的使用相信會有幫助,有需要的朋友們下面來一起看看吧。2016-09-09玩轉(zhuǎn)JavaScript OOP - 類的實現(xiàn)詳解
下面小編就為大家?guī)硪黄孓D(zhuǎn)JavaScript OOP - 類的實現(xiàn)詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-06