要在網頁複製內容,我們知道可以透過選取內容後透過滑鼠或手機操作複製,那如果要讓使用者直接透過介面操作就能複製特定的內容的話,現在 javascript 也可以透過 Navigator.clipboard 的 API 直接做到了。
首先來看寫入,寫入的話是使用 navigator.clipboard.writeText():
navigator.clipboard.writeText(copyText);
範例:
navigator.clipboard.writeText("hello");
這樣就會將 hello 的內容寫到剪貼簿。
而讀取的話是使用 navigator.clipboard.readText(),呼叫後會回傳一個 Promise,需要用 then 來串接取得內容:
navigator.clipboard.readText().then(text => { alert(text); // 剪貼簿中的內容 });
要注意的是有些瀏覽器可能會阻止直接寫入剪貼簿,用觸發事件後去處理會比較保險,另外 firefox 也有使用上的限制會需要去改權限,如果有用 firefox 的使用者也可能會無法使用。
實際範例: