移動(dòng)端和pc端的復(fù)制到剪貼板功能

一.Document.execCommand()

1.移動(dòng)端復(fù)制

html結(jié)構(gòu)

<p class="gift-code hide">禮包碼:
    <input class="gift-code-info" value="111111" readonly="text">
    <span class="gift-code-code"></span>
    <a href="#" id="1" class="gift-code-copy">復(fù)制</a>
<p>
      

js代碼

if(!isPC){
      $('.helper-box').on('click','.gift-code-copy',function(){    
        var inputText=$(this).prev('.gift-code-code').prev('.gift-code-info');
        var copyText=$(this).prev('.gift-code-code');
        console.log(inputText.val(),copyText.text());
        if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)){
            window.getSelection().removeAllRanges();
            var range = document.createRange();
            range.selectNode(copyText[0]);
            util.console.log('range:', range);
            window.getSelection().addRange(range);
    
            var result = document.execCommand('copy');
            if(result){
                popup.toast('復(fù)制成功');
            }else{
                popup.toast('復(fù)制失敗');
            }
            window.getSelection().removeAllRanges();
        }else{
            inputText.select();
            var result = document.execCommand('copy', false);
            if(result){
                popup.toast('復(fù)制成功');
            }else{
                popup.toast('復(fù)制失敗');
            }
        }

    })
  }

2.pc端的復(fù)制

注:IE僅支持IE9+

if(isPC){
        $('.helper-box').on('click','.gift-code-copy',function(){    
            var inputText=$(this).prev('.gift-code-code').prev('.gift-code-info');
            var copyText=$(this).prev('.gift-code-code');
            console.log(inputText.val(),copyText.text());          
            inputText.select();
            document.execCommand("Copy","false",null)
  
        })
    }  
    

document.execCommand()文檔:
https://developer.mozilla.org/zh-CN/docs/Web/API/Document/execCommand
document.execCommand()參考文章:
https://www.cnblogs.com/xhyu/p/5370111.html

二.jquery.zclip+flash

加載jQuery和zClip,地址請(qǐng)根據(jù)各自的存放地址做相應(yīng)修改。
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.zclip.min.js"></script>
js實(shí)現(xiàn)點(diǎn)擊復(fù)制的代碼
<script>
        $('#copyBtn').zclip({
            path: "ZeroClipboard.swf",
            copy: function(){
                return $('#link').val();
        }
        });
</script>

html

<div>
<input type="text" value="小松博客這個(gè)一個(gè)神奇的博客" id="link"> 
<span id="copyBtn">復(fù)制鏈接</span> 
</div>

注意:
1.zclip由于在target可見之前不能注冊(cè)的問題,需要在顯示后調(diào)用此方法進(jìn)行注冊(cè)送漠;
2.不能跨域使用;
3.本地測(cè)試無法使用,需上傳到服務(wù)器无畔;
4.確保有Flash支持;
5.如果復(fù)制的內(nèi)容來自輸入框input吠冤,textarea等浑彰,copy對(duì)象使用:

copy:function(){
   return $(xxx).val();
}

6.如果復(fù)制的內(nèi)容來自頁面元素div、p之類的拯辙,copy對(duì)象使用:

copy:$(xxx).text();

7.配置說明

path:swf的路徑(復(fù)制主要是用flash解決不同瀏覽器的復(fù)制)
copy:待復(fù)制的內(nèi)容, 可以是靜態(tài)內(nèi)容, 也可以 return 動(dòng)態(tài)內(nèi)容
beforeCopy:復(fù)制之前要做的function;
afterCopy:復(fù)制之后要做的function;

8.提供了三方法

show:$(selected).zclip('show'); //復(fù)制功能有效
hide:$(selected).zclip('hide'); //復(fù)制功能無效
remove:$(selected).zclip('remove'); //完全移除復(fù)制功能

三.clipboard.js

沒有Flash郭变,沒有框架
1.下載引入clipboard.js
2.實(shí)例化:new ClipboardJS( );
3.用法:可以復(fù)制、剪切涯保、從屬性復(fù)制文本诉濒;
復(fù)制:通過data-clipboard-target在觸發(fā)器元素中添加屬性來實(shí)現(xiàn)
可以定義data-clipboard-action屬性以指定是要copy還是cut內(nèi)容,如果省略此屬性,copy則默認(rèn)使用夕春。
剪切:cut操作僅適用于<input>或<textarea>元素未荒。
從屬性復(fù)制文本:
不需要另一個(gè)元素來復(fù)制其內(nèi)容〖爸荆可以data-clipboard-text在觸發(fā)器元素中包含一個(gè)屬性片排。

<button class="btn" data-clipboard-text="Just because you can doesn't mean you should — clipboard.js">
    Copy to clipboard
</button>

4.瀏覽器支持:IE9+寨腔,Chrome Opera Firefox Safari
復(fù)制的例子

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>clipboardjs復(fù)制</title>
</head>
<script src="../dist/clipboard.min.js"></script>
<body>
<!-- Target -->
<input id="foo" value="1111" type="text">

<!-- Trigger -->
<button class="btn" data-clipboard-action='copy' data-clipboard-target='#foo'>copy</button>
</body>
</html>
<script>
var clipboard=new ClipboardJS('.btn');

clipboard.on('success',function(e){
    console.log(e);
})
clipboard.on('error',function(e){
    console.log(e);
})




</script>

參考
下載zip文件
https://clipboardjs.com/
https://juejin.im/post/5a94f8eff265da4e9b593c29

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市率寡,隨后出現(xiàn)的幾起案子迫卢,更是在濱河造成了極大的恐慌,老刑警劉巖冶共,帶你破解...
    沈念sama閱讀 223,126評(píng)論 6 520
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件乾蛤,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡比默,警方通過查閱死者的電腦和手機(jī)幻捏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,421評(píng)論 3 400
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來命咐,“玉大人,你說我怎么就攤上這事谐岁〈椎欤” “怎么了?”我有些...
    開封第一講書人閱讀 169,941評(píng)論 0 366
  • 文/不壞的土叔 我叫張陵伊佃,是天一觀的道長(zhǎng)窜司。 經(jīng)常有香客問我,道長(zhǎng)航揉,這世上最難降的妖魔是什么塞祈? 我笑而不...
    開封第一講書人閱讀 60,294評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮帅涂,結(jié)果婚禮上议薪,老公的妹妹穿的比我還像新娘。我一直安慰自己媳友,他們只是感情好斯议,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,295評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著醇锚,像睡著了一般哼御。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上焊唬,一...
    開封第一講書人閱讀 52,874評(píng)論 1 314
  • 那天恋昼,我揣著相機(jī)與錄音,去河邊找鬼赶促。 笑死液肌,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的芳杏。 我是一名探鬼主播矩屁,決...
    沈念sama閱讀 41,285評(píng)論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼辟宗,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了吝秕?” 一聲冷哼從身側(cè)響起泊脐,我...
    開封第一講書人閱讀 40,249評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎烁峭,沒想到半個(gè)月后容客,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,760評(píng)論 1 321
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡约郁,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,840評(píng)論 3 343
  • 正文 我和宋清朗相戀三年缩挑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鬓梅。...
    茶點(diǎn)故事閱讀 40,973評(píng)論 1 354
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡供置,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出绽快,到底是詐尸還是另有隱情芥丧,我是刑警寧澤,帶...
    沈念sama閱讀 36,631評(píng)論 5 351
  • 正文 年R本政府宣布坊罢,位于F島的核電站续担,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏活孩。R本人自食惡果不足惜物遇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,315評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望憾儒。 院中可真熱鬧询兴,春花似錦、人聲如沸航夺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,797評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽阳掐。三九已至始衅,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間缭保,已是汗流浹背汛闸。 一陣腳步聲響...
    開封第一講書人閱讀 33,926評(píng)論 1 275
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留艺骂,地道東北人诸老。 一個(gè)月前我還...
    沈念sama閱讀 49,431評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像钳恕,于是被迫代替她去往敵國(guó)和親别伏。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蹄衷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,982評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容