日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

【js】vue项目中实现点击复制过滤条件,获取并处理粘贴板内容

發布時間:2023/12/20 vue 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【js】vue项目中实现点击复制过滤条件,获取并处理粘贴板内容 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前情提要

有這樣一個需求:每次重復選過濾條件太麻煩啦,需要一個可以復制過濾條件的功能!過濾條件類似下圖。

主要步驟

  • 第一步:復制工具的選取。這里我選用的是原生的Document.execCommand()方法,該方法允許運行命令來操縱可編輯內容區域的元素。詳情可查看MDN。

  • 第二步:設計一個按鈕,當click這個按鈕的時候,執行handleCopy()方法。

    • this.viewValue:存放過濾條件的值;
    • 為什么要新建一個input元素:由于Document.execCommand()方法是用來操縱可編輯內容區域的元素,而這里的過濾條件明顯不是,故我們要借用input元素;
    • input.setSelectionRange(0, -1):(0,-1) 代表全選

      以下引用于MDN:
      HTMLInputElement.setSelectionRange 方法可以從一個被 focused 的 元素中選中特定范圍的內容。

    <button @click="handleCopy"></button>// js handleCopy () {if (this.viewValue) {const input = document.createElement('input');let copyValue = JSON.stringify(this.viewValue);input.setAttribute('readonly', 'readonly');input.setAttribute('value', copyValue);document.body.appendChild(input);input.focus();input.setSelectionRange(0, -1);if (document.execCommand('copy')) {document.execCommand('copy');this.$Notify.success('復制成功!'); // 只是一個提示}document.body.removeChild(input);} }

    這樣復制就可以實現復制啦,此時ctrl+v可以看到我們復制的this.viewValue的內容。

  • 第三步:獲取粘貼板的內容。
    上述代碼實現了過濾條件的復制,但是直接ctrl+v又沒法替換過濾條件。所以,我們需要監聽粘貼(paste)事件,在該事件中,將粘貼板中的內容替換到過濾條件中。

    // mounted鉤子中 document.addEventListener('paste', (event) => {// 用戶打開了過濾條件窗口的話,執行。所以這里根據實際場景進行判斷if (...) {// 獲取粘貼板的內容let pasteValue = (event.clipboardData || window.clipboardData).getData('text');// 如果pasteValue符合過濾條件格式的話,執行。總不能用戶復制了啥我們都執行吧,所以也根據實際場景做判斷if (...) {// 節流,規定時間內,只執行一次。let nowTime = new Date();if (!this.lastPasteTime || nowTime - this.lastPasteTime > 5000) {// 復制的時候我們做了stringy處理,所以這里要轉換回原有格式。pasteValue = JSON.parse(pasteValue);// 友好一點,提醒一下用戶this.$Modal.confirm({title: '警告',content: '您正在進行的粘貼操作將覆蓋現有條件,確認要繼續嗎?',onOk: () => {this.viewValue = pasteValue;},modalProps: {'confirm-text': '粘貼'}});this.lastPasteTime = nowTime;}// 如果當前聚焦了可編輯元素,那么我們復制的內容會被粘貼到該元素中,在不希望發生這樣的情況的時候,我們需要阻止默認事件event.preventDefault();}}});

    總結

    到這里,點擊按鈕進行復制,以及獲取并處理粘貼板內容的功能就實現了。今天的分享就到這里,如果有錯誤的地方或者處理不夠好的地方歡迎提出來討論討論!

更新于2021年1月18日

無意中看到mdn上說到此特性被廢棄,所以最好不用此特性來實現復制功能了。

總結

以上是生活随笔為你收集整理的【js】vue项目中实现点击复制过滤条件,获取并处理粘贴板内容的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲精品污 | 国产a v一区二区三区 | 5个黑人躁我一个视频 | 女的被男的操 | 草草影院地址 | 国产成人精品无码免费看夜聊软件 | 国产成人精品视频在线观看 | 欧美伦理片网站 | 爱爱视频在线看 | 亚洲人精品午夜射精日韩 | 午夜777 | 日本免费精品 | 草草影院国产第一页 | 精品日韩在线观看 | 潘金莲一级淫片aaaaaaa | 三浦惠理子aⅴ一二三区 | 午夜视频福利网站 | 在线1区| 秋霞欧美视频 | 五月天婷婷激情网 | 神马午夜一区二区 | 成人在线免费观看网站 | 中文字幕第二页 | 日本中文字幕一区 | 日韩电影一二三区 | 日韩欧美一卡 | 日韩三级中文字幕 | 亚州激情视频 | 男生捅女生肌肌 | 国产伦一区二区 | 在线免费看av片 | 成人亚洲黄色 | 亚洲国产精品va在线看黑人 | 国产伦精品一区二区三区88av | 日本一二区视频 | 污漫网站| 中国老妇性视频 | 日韩av片在线看 | 免费一级淫片aaa片毛片a级 | 精品无码一区二区三区电影桃花 | 精品国产一区二区三区在线 | av在线播放地址 | 99久久精品免费看国产免费软件 | 成年人网站免费 | 那里有毛片看 | 开心激情综合 | 日韩h在线观看 | 欧美成人乱码一二三四区免费 | 狂野少女电影在线观看国语版免费 | 动漫3d精品一区二区三区乱码 | 少妇喷潮明星 | 免费在线观看黄色 | 青青草成人在线观看 | 全黄性性激高免费视频 | 日日草夜夜草 | 成人乱码一区二区三区 | 四虎激情 | 综合久久影院 | 亚洲黄色影院 | 伊人色婷婷 | 亚洲视频中文字幕在线观看 | 99国产视频| 婷婷综合精品 | 中文字幕日韩欧美一区二区三区 | 日本乱码一区二区 | 亚洲天天综合 | 少妇福利在线 | www.自拍偷拍 | 欧美一区二区二区 | 精品国产视频在线 | 成人在线一区二区三区 | 精品国产欧美一区二区 | 欧美乱妇一区二区三区 | 在线不卡一区二区 | 天堂a√在线 | 成人在线免费播放视频 | 69av一区二区三区 | 波多野结衣av在线观看 | 久99| 亚洲干综合| 性中国古装videossex | 干美女视频 | 两个小y头稚嫩紧窄h文 | 国产精品香蕉国产 | 捆绑无遮挡打光屁股 | 男人天堂网在线观看 | 天天干网站| 国产东北真实交换多p免视频 | 中国女人内96xxxxx | 夜夜天天干 | 肉丝美脚视频一区二区 | 偷拍视频一区 | 中文字幕一区二区三区人妻四季 | 在线免费91| 欧美××××黑人××性爽 | 日韩久久久久久久久久久 | 欧美老熟妇乱大交xxxxx | 91tv国产成人福利 | 国产精品大片 |