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