當開發者需要對某局部文本進行點擊復制效果時,在IE下實現比較簡單。但要想做到跨瀏覽器比較困難了。Zero Clipboard 它利用 Flash 進行復制,所以只要瀏覽器裝有 Flash 就可以運行,而且比IE的document.execCommand(“Copy”) 更加靈活。
Zero Clipboard 的實現原理
Zero Clipboard 利用 Flash 進行復制,之前有 Clipboard Copy 解決方案,其利用的是一個隱藏的 Flash。但最新的 Flash Player 10 只允許在 Flash 上進行操作才能啟動剪貼板。所以 Zero Clipboard 對此進行了改進,用了一個透明的 Flash ,讓其漂浮在按鈕之上,這樣其實點擊的不是按鈕而是 Flash ,也就可以使用 Flash 的復制功能了。
Zero Clipboard 特點介紹:
兼容支持Flash 10
避免使用第三方瀏覽器插件(的Adobe Flash瀏覽器中的安全沖突)
無形的覆蓋,無干擾,頁面設計
支持CSS“懸停”和“活躍”狀態
保留目標元素的“點擊”,”mouseenter”和”mouseleave”的事件
供應回調函數“復制前”和“復制”
極輕的重量! (7KB精縮)
首先下載 Zero Clipboard ,并解壓縮。其中需要兩個文件:ZeroClipboard.js 和 ZeroClipboard.swf ,將這兩個文件放入到你的項目中。
點擊下載:jquery.zclip.1.1.1
用法:
1.) 首先引入核心文件
<script type="text/javascript" src="http://www.gimoo.net/t/1903/js/jquery.js"></script> <script type="text/javascript" src="http://www.gimoo.net/t/1903/js/jquery.zclip.js"></script>
2.) 在頁面代碼里寫入功能模塊,定義copy復制按鈕元素屬性信息
<script language="javascript"> $(document).ready(function(){ $('a#copy-description').zclip({ path:'js/ZeroClipboard.swf', copy:$('p#description').text() }); // The link with ID "copy-description" will copy // the text of the paragraph with ID "description" $('a#copy-dynamic').zclip({ path:'js/ZeroClipboard.swf', copy:function(){return $('input#dynamic').val();} }); // The link with ID "copy-dynamic" will copy the current value // of a dynamically changing input with the ID "dynamic" }); </script>
例一:
<a id="copy-description">點擊復制效果預覽</a> <p id="description">文本源……</p>
例二:
<a id="copy-dynamic">點擊復制效果預覽:</a><input style="width:300px; margin-left:15px;" type="text" id="dynamic" value="Insert any text here." onfocus="if(this.value=='Insert any text here.'){this.value=''}" onblur="if(this.value==''){this.value='Insert any text here.'}" />
3.) 供應定制的回調函數。
<script language="javascript"> $(document).ready(function(){ $("a#copy-callbacks").zclip({ path:'js/ZeroClipboard.swf', copy:$('#callback-paragraph').text(), beforeCopy:function(){ $('#callback-paragraph').css('background','yellow'); $(this).css('color','orange'); }, afterCopy:function(){ $('#callback-paragraph').css('background','green'); $(this).css('color','purple'); $(this).next('.check').show(); } }); }); </script>
3.) 默認參數。
擴展介紹:
1.) 測試兼容IE6,IE7,IE8,FF 3.6,Chrome瀏覽器8,Safari 5的,歌劇11
2.) 適當的CSS特效:
/* zClip is a flash overlay, so it must provide */ /* the target element with "hover" and "active" classes */ /* to simulate native :hover and :active states. */ /* Be sure to write your CSS as follows for best results: */ /*大概意思就是說 ZeroClip是flash疊加……就是說flash疊加在了text文本上,其實顯示文字可以根據css來定義*/ a:hover, a.hover {...} a:active, a.active {...}
在線演示:
1、http://demo.gimoo.net/js/2016/jquery_zclip/demo1.html
2、http://demo.gimoo.net/js/2016/jquery_zclip/demo2.html
至此,該插件使用方法已經介紹結束,對于使用者的開發者來說,剩下的擴展方面就要根據需求而定了。