您好,登錄后才能下訂單哦!
怎么在ZeroClipboard.js中使用flash復制多個文本框?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
一般我們需要復制一個地方的時候,大多都使用下面這個代碼新建一個對象:
<div id="J_pop_share"> <input id="J_video_iframe1" value="<iframe src="http://caibaojian.com/book/"></iframe>" /> <button id="J_copy_btn1">復制</button> </div>
單個:
var clip = null;//ZeroClipboard.Client對象 var current_id = null;//當前所在的文本元素id //指定ZeroClipboard.swf位置 ZeroClipboard.setMoviePath(location.protocol+"//club.pcauto.com.cn/js/ZeroClipboard.swf"); clip = new ZeroClipboard.Client();//創建ZeroClipboard.Client對象 clip.setHandCursor(true);//鼠標移動到元素上之后顯示手型 clip.glue('J_copy_btn1','J_pop_share'); clip.setText($('#J_video_iframe1').val()); //添加復制成功之后的操作 clip.addEventListener('complete', function() { alert('復制成功'); });
如果有多個的話,是不是需要新建四個flash對象呢?可能沒嘗試過的人會這么做,這篇文章分享另外一種做法,就是在上面這個flash的基礎上,當移動到另外一個按鈕時,改變flash的位置和復制的文本。
多個文本的HTML代碼:
<div id="J_pop_share"> <div> <input id="J_video_iframe1" value="<iframe src="http://caibaojian.com/book/"></iframe>" /> <button id="J_copy_btn1" class="btn-copy-text">復制</button> </div> <div> <input id="J_video_iframe2" value="<iframe src="http://caibaojian.com/book/"></iframe>" /> <button id="J_copy_btn2" class="btn-copy-text">復制</button> </div> <div> <input id="J_video_iframe3" value="<iframe src="http://caibaojian.com/book/"></iframe>" /> <button id="J_copy_btn3" class="btn-copy-text">復制</button> </div> <div> <input id="J_video_iframe4" value="<iframe src="http://caibaojian.com/book/"></iframe>" /> <button id="J_copy_btn4" class="btn-copy-text">復制</button> </div> </div>
javascript代碼:在上面js的基礎上,加上下面這個代碼
//上面的代碼 $(".btn-copy-text").each(function(i){ var index =i+1; $(this).on('mouseover',function(){ var button_id = $(this).attr('id');//復制div的id //var text_id = button_id+'_text';//要復制的元素id var text_id = 'J_video_iframe'+(index); move_swf(text_id , button_id); }); }); //移動浮動flash div到指定的地方,從而只需要使用一個flash即可在多個地方實現復制功能 function move_swf(text_id,button_id) { //重新指定flash浮動div位置,用reposition clip.reposition(button_id, 'J_pop_share'); clip.setText($('#'+text_id).val()); }
在使用ZeroClipboard.js時,可能會出現復制不起作用或者其它詭異的bug,例如我今天在IE中,由于內容是放在彈窗里面,復制第一個是可以的,但第二個則會報錯,提示“沒有這個對象”,調試了好久,始終無法解決,后來不隱藏彈窗,卻不會報錯,所以,我覺得應該是flash隱藏和顯示有關,把彈窗隱藏改用絕對定位加left:-9999px,顯示的時候,再定位正確的left值就不會報錯了。
看完上述內容,你們掌握怎么在ZeroClipboard.js中使用flash復制多個文本框的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。