本篇參考:javascript
https://developer.mozilla.org/zh-CN/docs/Mozilla/Add-ons/WebExtensions/Interact_with_the_clipboardhtml
https://developer.salesforce.com/docs/component-library/tools/locker-service-viewer前端
https://github.com/zenorocha/clipboard.js(第三方插件庫,感興趣能夠本身實現)java
咱們在作項目得時候,有時須要將指定內容複製到剪貼板。對前端玩的好得會知道,js得瀏覽器擴展功能中包含和系統剪貼板得交互,詳情能夠查看最上方連接。純HTML代碼以下demo,這種demo固然百度一大堆。git
<button onclick="handleCopy()">複製內容到剪貼板</button> <script type="text/javascript"> function handleCopy(){ var tag = document.createElement('textarea'); tag.setAttribute('id', 'input_test_id'); tag.value = 'test copy value \nthis is another line content'; document.getElementsByTagName('body')[0].appendChild(tag); document.getElementById('input_test_id').select(); document.execCommand('copy'); document.getElementById('input_test_id').remove(); alert('複製成功'); } </script>
瀏覽器運行效果:當點擊 複製內容到剪貼板按鈕之後,‘test copy value this is another line content’內容會賦值到剪貼板(換行展現),展現alert,當咱們在郵件或者其餘文本工具中 右鍵粘貼,便會將咱們複製內容粘貼。github
這裏得核心語句是使用了document.execCommand實現了複製得功能,那麼爲何要先生成一個textarea框,而後再移除掉呢,咱們查看一下這個方法在MDN得定義。編程
經過定義咱們能夠發現,使用 document.execCommand得前提是隻容許操縱可編輯內容區域得元素,爲了支持換行復制內容,因此咱們只能先生成一個 textarea,而後進行拷貝操做之後,在移除。瞭解了之後,咱們進行lwc得編程實現。瀏覽器
在咱們進行lwc得編程實現之前,須要先了解lwc得限制,即lwc不是支持全部得document得函數,由於lwc經過 lightning locker保證前端得安全性,經過上面得連接能夠查看到lwc中得 locker API viewer中提供得哪些對應得document函數是安全得可用的。安全
上述得功能都在locker 支持內,因此lwc代碼也能夠順利生成。demo以下:app
clipboardDemo.html
<template> <lightning-button label="點我複製" onclick={handleCopyToClickboardEvent}></lightning-button> </template>
clipboardDemo.js
import { LightningElement } from 'lwc'; export default class ClipboardDemo extends LightningElement { handleCopyToClickboardEvent(event) { let tag = document.createElement('textarea'); tag.setAttribute('id', 'input_test_id'); tag.value = 'test copy value\nthis is another line content'; document.getElementsByTagName('body')[0].appendChild(tag); document.getElementById('input_test_id').select(); document.execCommand('copy'); document.getElementById('input_test_id').remove(); alert('複製成功'); } }
總結:篇中簡單描述如何在lwc中實現 複製內容到剪貼板。篇中有錯誤地方還請指出,有不懂歡迎留言。