萬盛學電腦網

 萬盛學電腦網 >> 網頁制作 >> DivCSS教程 >> 若想通過js將內容復制到剪貼板原來不難然則若思量到賞識器的兼容

若想通過js將內容復制到剪貼板原來不難然則若思量到賞識器的兼容

若想通過js將內容復制到剪貼板,原來不難,然則若思量到賞識器的兼容性題目,就變的有點貧困,行使jquery-zclip復制是一個不錯的選擇,借助flash實現賞識器的兼容。道理就不細講了,下面說下怎樣實現。

好比我的html代碼如下:
代碼如下:
<div>
<code><span>要復制的內容1</span></code>
<code><span>要復制的內容2</span></code>
<code><span>要復制的內容3</span></code>
</div>

js文件總共必要兩個,jquery就不消說了,再就是jquery-zclip.js和ZeroClipboard.swf,這兩個文件可以在官方網站上下載,地點如下:

天生復制按鈕的js如下
代碼如下:
<script type="text/javascript">
$(function(){
$('code').each(function(){
var self = $(this);
var id = self.attr('rel');
var copy = $('<span>復制</span>').appendTo(self).zclip({
'path':'/static/admin/js/ZeroClipboard.swf',//這裡寫本身存在的地點
'afterCopy':function(){
alert('獲取對應代碼的地點已經復制到剪切板,可以行使ctrl+v粘貼');
},
'copy':function(){
return $('#id_'+id).text();//留意這裡,如果div span等行使text(),如果input等,行使val(),這個支持的不是很好
}
});
});
});

</script>

這樣就能時刻跨賞識器的復制了,原來不是很難的工作,我做測試的時辰也挺順遂的,可以當我把他放到項目中就出題目了,復制按鈕發生位置沒有flash,只有筆墨,其後發明,著實flash天生了,可是沒有在筆墨地址的位置,預計和我項目靠山行使的是iframe布局有相關,預計這是這個插件的一個bug吧,其後查了許多資料,有的人說,必要改下代碼就可以了,其後我改了,下,公然就可以了

必要修改的代碼如下
代碼如下:
getDOMObjectPosition: function (obj, stopObj) {
// get absolute coordinates for dom element
var info = {
left: 0,
top: 0,
width: obj.width ? obj.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包圍到按鈕的上面,若他們兩個不重合,就呈現了上面的題目。

(
copyright © 萬盛學電腦網 all rights reserved