首頁 > web前端 > js教程 > 用js將內容複製到剪貼簿相容瀏覽器_javascript技巧

用js將內容複製到剪貼簿相容瀏覽器_javascript技巧

WBOY
發布: 2016-05-16 16:55:06
原創
1077 人瀏覽過

若想透過js將內容複製到剪貼簿,本來不難,可是若考慮到瀏覽器的兼容性問題,就變的有點麻煩,使用jquery-zclip複製是一個不錯的選擇,借助flash實現瀏覽器的兼容。原理就不細講了,下面說如何實現。

例如我的html程式碼如下:

複製程式碼 程式碼如下:


程式碼如下:



程式碼如下:



程式碼如下:

js檔案總共需要兩個,jquery就不用說了,再就是jquery-zclip.js和ZeroClipboard.swf,這兩個文件可在官方網站下載,網址如下:http://www.steamdev.com/zclip/

產生複製按鈕的js如下




複製程式碼


程式碼如下:


'path':'/static/admin/js/ZeroClipboard.swf',//這裡寫自己存在的地址
'afterCopy':function(){
alert('取得對應程式碼的位址已經複製到剪下板,可以使用ctrl v貼上');
},
'copy':function(){
return $('# id_' id).text();//注意這裡,若是div span等使用text(),若是input等,使用val(),這個支援的不是很好} }); }); });

這樣就能時間跨瀏覽器的複製了,本來不是很難的事情,我做測試的時候也挺順利的,可以當我把他放到項目中就出問題了,複製按鈕產生位置沒有flash,只有文字,後來發現,其實flash生成了,但是沒有在文字所在的位置,估計和我專案後台使用的是iframe結構有關係,估計這是這個插件的一個bug吧,後來查了很多資料,有的人說,需要改下程式碼就可以了,後來我改了,下,果然就可以了

需要修改的程式碼如下




複製程式碼


程式碼如下:



程式碼如下:
// get absolute coordinates for dom element
var info = {
left: 0,
top: 0,
width: obj.width ? .width : obj.offsetWidth,
height: obj.height ? obj.height : obj.offsetHeight }; if (obj && (obj != stopObj)) { / /info.left = obj.offsetLeft; //修改前//info.top = obj.offsetTop; //修改前jpos = $(obj).position(); //修改後info.left = jpos.left; //修改後info.top = jpos.top; //修改後} return info; } 其實這和這個插件的原理有關係,他就將一個透明的flash覆蓋到按鈕的上面,若他們兩個不重合,就出現了上面的問題。
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板