ZeroClipboard插件實(shí)現(xiàn)多瀏覽器復(fù)制功能(支持firefox、chrome、ie6)
但是值得注意的是官方介紹中已明確表態(tài)說這個插件不支持ie6,下面將提供多實(shí)例化Zero Clipboard復(fù)制功能的實(shí)現(xiàn)及兼容ie6的寫法!
先下載ZeroClipboard http://www.dhdzp.com/jiaoben/24961.html
<style type="text/css">
body { font-family:arial,sans-serif; font-size:9pt; }
.copyit {text-align:center; border:1px solid #FD6001; background-color:#ED730B; margin:10px; padding:2px 5px; cursor:pointer; font-size:12px; border-radius:3px;}
.copyit.hover { background-color:#FD6001;}.copyit.active { background-color:#d25102;}/*鼠標(biāo)hover效果,實(shí)為調(diào)用setCSSEffects()方法*/
.copy_info{width:260px;height:100px;border:1px solid #ccc;padding:5px;}
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="/js/ZeroClipboard/ZeroClipboard.js"></script>
<div class="clip_container">
<textarea id="fe_text" cols=50 rows=5 class="copycnt">第1個被復(fù)制的內(nèi)容?。?!</textarea>
<b class="copyit">復(fù)制內(nèi)容</b>
</div>
<br/>
<div class="clip_container">
<textarea id="fe_text" cols=50 rows=5 class="copycnt">第2個被復(fù)制的內(nèi)容?。?!</textarea>
<b class="copyit">復(fù)制內(nèi)容</b>
</div>
<script type="text/javascript">
var clip = null;
function copyThis() {
if($.browser.version==6.0){
//針對ie6
$('.copyit').bind("click",function(){
var code=$(this).parents(".clip_container").find(".copycnt").text();
window.clipboardData.setData("Text",code);
alert('被復(fù)制的內(nèi)容:\n'+code);
})
return;
}
ZeroClipboard.setMoviePath("http://img.jb51.net/js/scripts/clipboard.swf'");//如果ZeroClipboard.js, ZeroClipboard.swf放在同一目錄下,可省略這句;
clip = new ZeroClipboard.Client();
$('.copyit').mouseover( function() {
var code=$(this).parents(".clip_container").find(".copycnt").text();
clip.setText(code);
if (clip.div) {//已創(chuàng)建過包含flash的父層div,則鼠標(biāo)hover時重新定位flash層的位置
//clip.receiveEvent('mouseout', null);
clip.reposition(this);
}else{
clip.glue(this)};
//clip.receiveEvent('mouseover', null);
} );
clip.addEventListener( 'complete', function(client, text){
alert("被復(fù)制內(nèi)容:\n"+text);
});
}
copyThis();
</script>
<textarea style="width:300px;height:300px;">
粘貼復(fù)制的內(nèi)容到這里試試!!
</textarea>
上面的實(shí)現(xiàn)方法,除了ie6使用window.clipboardData.setData來實(shí)現(xiàn)復(fù)制功能外,其它瀏覽器都用Zero Clipboard 插件來實(shí)現(xiàn)復(fù)制功能!
使用該插件時應(yīng)注意的幾點(diǎn):
1、以上 ZeroClipboard.js, ZeroClipboard.swf需要放在同一路徑下。如果不在同一路徑,可使用ZeroClipboard.setMoviePath( “Flash路徑” );來設(shè)置ZeroClipboard.swf 地址。
2、setCSSEffects() 方法的解析: 當(dāng)鼠標(biāo)移到按鈕上或點(diǎn)擊時,由于有Flash按鈕的遮擋,所以復(fù)制按鈕本身體的 css “:hover”, “:active” 等偽類可能會失效。setCSSEffects() 方法就是解決這個問題。首先我們需要將偽類改成類,比如:
.copyit:hover{
border-color:#FF6633;
}
// 需要將":hover"改成下面的".hover"
.copyit.hover{
border-color:#FF6633;
}
3、getHTML() 方法的解析:如果你想自己實(shí)例一個Flash ,不用Zero Clipboard的附著方法,那么這個方法就可以幫上忙了。它接受兩個參數(shù),分別為Flash的寬度和高度。返回的是Flash對應(yīng)的 HTML 代碼。例如:
var html = clip.getHTML( 150, 20 );
相關(guān)文章
postMessage消息通信Promise化的方法實(shí)現(xiàn)
postMessage Api 想必大家都不陌生,WebWorker 通信會用到,iframe 窗口之間通信也會用到,那么我們能不能將 postMessage 進(jìn)行一次轉(zhuǎn)化,把他變成類似 Promise 的使用方式,所以本文給大家介紹了postMessage消息通信Promise化的方法實(shí)現(xiàn),需要的朋友可以參考下2024-03-03
JavaScript禁止復(fù)制與粘貼的實(shí)現(xiàn)代碼
下面小編就為大家?guī)硪黄狫avaScript禁止復(fù)制與粘貼的實(shí)現(xiàn)代碼。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考,一起跟隨小編過來看看吧2016-05-05
JavaScript函數(shù)中的防抖與節(jié)流原生實(shí)現(xiàn)及第三方庫的使用
當(dāng)你頻繁的觸發(fā)用戶界面時,會不停的觸發(fā)事件處理函數(shù),可能導(dǎo)致界面卡頓,瀏覽器奔潰,頁面空白等情況,而解決這一問題的,正是函數(shù)節(jié)流與函數(shù)防抖,所以本文將給大家介紹一下JavaScript函數(shù)中的防抖與節(jié)流原生實(shí)現(xiàn)及第三方庫的使用,需要的朋友可以參考下2023-10-10
微信小程序?qū)崿F(xiàn)頁面跳轉(zhuǎn)傳值以及獲取值的方法分析
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)頁面跳轉(zhuǎn)傳值以及獲取值的方法,結(jié)合實(shí)例形式總結(jié)分析了微信小程序頁面跳轉(zhuǎn)及傳值的常用操作技巧,需要的朋友可以參考下2017-12-12
微信小程序中使用自定義圖標(biāo)(阿里icon)的方法
這篇文章主要介紹了微信小程序中使用自定義圖標(biāo)(阿里icon)的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-08-08
javascript &&和||運(yùn)算法的另類使用技巧
一直以為 && 和 || 這兩個偉大的運(yùn)算法只能在判斷表達(dá)式使用,也就是常在if語句使用,原來錯了,它還可以運(yùn)用在簡化選擇性執(zhí)行語句的操作,有點(diǎn)拗口,簡單點(diǎn)也就是:操作執(zhí)行某條語句,不執(zhí)行某條語句。2009-11-11

