支持ie與FireFox的剪切板操作代碼
<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下可以運(yùn)行<br />
Firefox/3.5.3下無(wú)效<br />
不過(guò)多考慮這一塊了。
</div>
</body>
</html>
下面是ie firefox 讀取剪切板中的信息的方法
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安全限制限制您進(jìn)行剪貼板操作,請(qǐng)打開(kāi)'about:config'將signed.applets.codebase_principal_support'設(shè)置為true'之后重試,相對(duì)路徑為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下 寫(xiě)入剪切板的代碼
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安全限制限制您進(jìn)行剪貼板操作,請(qǐng)打開(kāi)'about:config'將signed.applets.codebase_principal_support'設(shè)置為true'之后重試,相對(duì)路徑為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)文章
js實(shí)現(xiàn)div閃爍原理及實(shí)現(xiàn)代碼
閃爍的原理是什么呢:其實(shí)就一個(gè),display在none與block之間頻繁的交替,這樣說(shuō)你明白了么,示例代碼如下,希望對(duì)大家有所幫助2014-06-06js實(shí)現(xiàn)簡(jiǎn)單的無(wú)縫輪播效果
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)簡(jiǎn)單的無(wú)縫輪播效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-09-09JavaScript實(shí)現(xiàn)加密與解密詳解
這篇文章介紹了JavaScript實(shí)現(xiàn)加密與解密詳解的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06TypeScript為對(duì)象動(dòng)態(tài)添加屬性代碼示例
這篇文章主要給大家介紹了關(guān)于TypeScript為對(duì)象動(dòng)態(tài)添加屬性的相關(guān)資料,在TypeScript 中,我們經(jīng)常需要在運(yùn)行時(shí)動(dòng)態(tài)添加屬性到對(duì)象上,需要的朋友可以參考下2023-07-07echarts柱狀圖坐標(biāo)軸內(nèi)容顯示不全的兩種解決辦法
本文主要介紹了echarts柱狀圖坐標(biāo)軸內(nèi)容顯示不全的兩種解決辦法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05JavaScript中apply方法的應(yīng)用技巧小結(jié)
這篇文章給大家總結(jié)了在js中apply方法的一些應(yīng)用技巧,通過(guò)這些技巧對(duì)大家日常的使用相信會(huì)有幫助,有需要的朋友們下面來(lái)一起看看吧。2016-09-09詳解通用webpack多頁(yè)面自動(dòng)導(dǎo)入方案
本文主要介紹了通用webpack多頁(yè)面自動(dòng)導(dǎo)入方案,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01玩轉(zhuǎn)JavaScript OOP - 類(lèi)的實(shí)現(xiàn)詳解
下面小編就為大家?guī)?lái)一篇玩轉(zhuǎn)JavaScript OOP - 類(lèi)的實(shí)現(xiàn)詳解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06原生JS實(shí)現(xiàn)京東查看商品點(diǎn)擊放大
這篇文章主要為大家詳細(xì)介紹了原生JS實(shí)現(xiàn)京東查看商品點(diǎn)擊放大,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-12-12