1. 程式人生 > >原生Js實現複製(Copy)的方法總結:execCommand和clipboardData的使用

原生Js實現複製(Copy)的方法總結:execCommand和clipboardData的使用

原生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;
},