原生Js實現複製(Copy)的方法總結:execCommand和clipboardData的使用
阿新 • • 發佈:2018-12-06
原生Js實現複製(Copy)的兩種方法,一種是利用 clipboardData,另外一種則是用 execCommand(),今天將統一講解一下關於他們的使用方法。
document.execCommand
當一個HTML文件切換到設計模式(designMode)時,文件物件暴露 execCommand方法,該方法允許執行命令來操縱可編輯區域的內容。大多數命令影響文件的選(粗體,斜體等),而其他命令插入新元素(新增連結)或影響整行(縮排)。當使用 contentEditable時,呼叫 execCommand() 將影響當前活動的可編輯元素。
相容性:
特徵 | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
複製copy | 43 | (Yes) | 441 | 9 | 29 | 10 |
clipboardData
clipboardData物件 ,注意網頁裡剪貼簿到現在只能設定Text型別,即只能複製文字 clearData("Text")清空貼上板 getData("Text")讀取貼上板的值 setData("Text",val)設定貼上板的值 當複製的時候body的oncopy事件被觸發,直接return false就是禁止複製,注意是不能複製網頁裡的文字了。
(注意:主要用於支援IE,ie7,與ie8 對網頁有個複製的許可權,需在“安全”中的“自定義級別”的指令碼中設定)
程式碼實現
html:
<span class="hleft" v-on:click="copyLink(data.url,'text')">複製連結</span>
<textarea id="text">{{data.url}}</textarea>
JS:
copyToClipBoard:function(s,id){ //複製到剪下板 if(document.execCommand){ var e=document.getElementById(id); e.select(); document.execCommand("Copy"); return true; } if(window.clipboardData){ window.clipboardData.setData("Text", s); return true; } return false; },