瀏覽器對剪切板的訪問
Clipboard API
剪貼板 Clipboard API 提供了響應剪貼板命令(剪切、復制和粘貼)與異步讀寫系統剪貼板的能力。從權限 Permissions API 獲取權限之后,才能訪問剪貼板內容;如果用戶沒有授予權限,則不允許讀取或更改剪貼板內容。該 API 被設計用來取代使用 document.execCommand() 的剪貼板訪問方式
方法
Clipboard api 有四個方法,都是返回promise。執行方法時,需要網頁本身處於焦點,可以先觸發一個click或其他事件
read()
從剪貼板讀取數據(比如圖片),返回一個 Promise 對象
readText()
從剪貼板讀取文本,返回一個 Promise 對象
write()
寫入任意數據至操作系統剪貼板
writeText()
寫入文本至操作系統剪貼板
例子:
// 如后台自動運行,則需觸發一個聚焦,或點擊等其他事件,讓頁面處於焦點。
// 一般情況下頁面都是處於焦點中的,所以不是很需要執行下述方法
document.dispatchEvent(new Event('focus'));
navigator.clipboard.readText().then((data) => console.log(data));
事件
有關剪切板的事件包含三種
copy
cut
parse
document.execCommand [已廢棄的方法]
當一個HTML文檔切換到設計模式時,document暴露 execCommand 方法,該方法允許運行命令來操縱可編輯內容區域的元素。
使用該方法進行復制內容時,一般是先設置一個輸入框,然后選中后執行
document.execCommand('copy')
具體使用方式如下例:
input.focus();
input.setSelectionRange(0, -1);
document.execCommand('copy');