首先遇到這個(gè)需求是就各種百度,但是發(fā)現(xiàn)基本都是用js實(shí)現(xiàn),而且兼容性還非常不好。
但是在尋覓和嘗試的過程中,發(fā)現(xiàn)只需要css代碼也可以完全實(shí)現(xiàn)的,對(duì)需要復(fù)制內(nèi)容的標(biāo)簽加上下面這幾行代碼就可以了。
-webkit-touch-callout: all;-webkit-user-select: all;-moz-user-select: all;-ms-user-select: all;user-select: all;
其實(shí)意思就是不限制用戶對(duì)內(nèi)容的操作,不禁用系統(tǒng)默認(rèn)菜單,長按會(huì)顯示系統(tǒng)自帶的復(fù)制功能進(jìn)行復(fù)制。
使用clipboard.js實(shí)現(xiàn)移動(dòng)端粘貼復(fù)制
clipboard.js是一款很強(qiáng)大的粘貼復(fù)制的插件,但是在移動(dòng)端使用,會(huì)出現(xiàn)兼容性問題。下面是我常使用的一種解決方案。
html
<input id="foo1" value="http://www.shellad.com/_2SP__22(要復(fù)制的內(nèi)容)" readonly="readonly"><div class="the_btn_con"><button class="btn" data-clipboard-target="#foo1">復(fù)制</button></div>
js
$(function () { var clipboard = new Clipboard('.btn'); //優(yōu)雅降級(jí):safari 版本號(hào)>=10,提示復(fù)制成功;否則提示需在文字選中后,手動(dòng)選擇“拷貝”進(jìn)行復(fù)制 clipboard.on('success', function(e) { alert('復(fù)制成功!') console.log($(this)) e.clearSelection(); }); clipboard.on('error', function(e) { alert('請(qǐng)選擇“拷貝”進(jìn)行復(fù)制!') }); })
注意我在保存要復(fù)制的內(nèi)容時(shí)使用的是input控件,而不是div或者span。因?yàn)?,在測(cè)試時(shí)只有input的兼容性最好,不會(huì)出現(xiàn)問題,能夠保證正常復(fù)制。同時(shí),該插件也不支持safari 版本號(hào)<10,所以要做好提示。
總結(jié)
以上所述是小編給大家介紹的HTML5實(shí)現(xiàn)移動(dòng)端復(fù)制功能,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)武林網(wǎng)網(wǎng)站的支持!
新聞熱點(diǎn)
疑難解答
圖片精選