DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> ZeroClipboard插件實現多浏覽器復制功能(支持firefox、chrome、ie6)
ZeroClipboard插件實現多浏覽器復制功能(支持firefox、chrome、ie6)
編輯:關於JavaScript     

但是值得注意的是官方介紹中已明確表態說這個插件不支持ie6,下面將提供多實例化Zero Clipboard復制功能的實現及兼容ie6的寫法!

先下載ZeroClipboard http://www.jb51.net/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;}/*鼠標hover效果,實為調用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個被復制的內容!!!</textarea>
<b class="copyit">復制內容</b>
</div>
<br/>
<div class="clip_container">
<textarea id="fe_text" cols=50 rows=5 class="copycnt">第2個被復制的內容!!!</textarea>
<b class="copyit">復制內容</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('被復制的內容:\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) {//已創建過包含flash的父層div,則鼠標hover時重新定位flash層的位置
		 //clip.receiveEvent('mouseout', null);
		 clip.reposition(this);
	 }else{
		clip.glue(this)};
	 //clip.receiveEvent('mouseover', null);
	} );
	clip.addEventListener( 'complete', function(client, text){
	 alert("被復制內容:\n"+text);
	});
}
copyThis();
</script>
<textarea style="width:300px;height:300px;">
粘貼復制的內容到這裡試試!!
</textarea>

上面的實現方法,除了ie6使用window.clipboardData.setData來實現復制功能外,其它浏覽器都用Zero Clipboard 插件來實現復制功能!

使用該插件時應注意的幾點:

1、以上 ZeroClipboard.js, ZeroClipboard.swf需要放在同一路徑下。如果不在同一路徑,可使用ZeroClipboard.setMoviePath( “Flash路徑” );來設置ZeroClipboard.swf 地址。

2、setCSSEffects() 方法的解析: 當鼠標移到按鈕上或點擊時,由於有Flash按鈕的遮擋,所以復制按鈕本身體的 css “:hover”, “:active” 等偽類可能會失效。setCSSEffects() 方法就是解決這個問題。首先我們需要將偽類改成類,比如:

復制代碼 代碼如下:
.copyit:hover{
 border-color:#FF6633;
}
// 需要將":hover"改成下面的".hover"
.copyit.hover{
 border-color:#FF6633;
}

3、getHTML() 方法的解析:如果你想自己實例一個Flash ,不用Zero Clipboard的附著方法,那麼這個方法就可以幫上忙了。它接受兩個參數,分別為Flash的寬度和高度。返回的是Flash對應的 HTML 代碼。例如:
var html = clip.getHTML( 150, 20 );

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved