寫入和讀取剪切板內容

来源:https://www.cnblogs.com/cry0-0/p/18086370
-Advertisement-
Play Games

寫入剪切板 使用 clipboard.js 第三方插件: clipboard.js 安裝clipboard.js yarn yarn add clipboard npm npm install clipboard --save 使用示例(vue) <template> <div> <span v-c ...


寫入剪切板

使用 clipboard.js 第三方插件:

clipboard.js

安裝clipboard.js

yarn

yarn add clipboard

npm

npm install clipboard --save

使用示例(vue)

<template>
	<div>
	  <span v-copy>複製這段文本</span>
    </div>
</template>

<script>
import ClipboardJS from "clipboard";

export default {
	directives: {
		copy: {
		  bind(el, binding, vnode) {
		    // 獲取vue實例
		    const that = vnode.context;
		    // 1-監聽點擊的元素
		    that.handleCopy(el);
		  },
		}
	},
	methods: {
		handleCopy(element) {
          // 2-實例化剪切板對象,指定要複製文本的元素
          const clipboard = new ClipboardJS(element, {
            /**
             * 動態獲取要複製的文案
             * @param {HTMLElement} trigger 監聽點擊的元素
             * @return {string} 要複製的文案
             */
            text: function(trigger) {
              return trigger.innerText;
            }
          });
          // 3-結果回調
          clipboard.on('success', function(e) {
            console.info('e= :', e);

            // 清除文字的選中狀態
            e.clearSelection();
          });

          clipboard.on('error', function(e) {
            console.error('Action:', e.action);
            console.error('Trigger:', e.trigger);
          });
        },
	}
}
</script>

這裡使用了vue的自定義指令,

  • 指令第一次綁定到元素時,監聽元素的點擊(複製)事件。
  • 點擊元素時,執行text函數,並將結果(字元串)寫入剪切板。
  • 寫入成功,執行success回調函數;寫入失敗,執行error回調函數。

原生API

可以使用原生API:Clipboard.writeText()實現寫入剪切板。

var promise = navigator.clipboard.writeText(newClipText)
  • newClipText:寫入的內容

其它API

  • Clipboard: write():該方法理論上可以寫入任意數據(與writeText()不同,後者只能寫入文本)。瀏覽器通常支持編寫文本、HTML和PNG圖像數據

讀取剪切板

<template>
	<div>
	  <p @click="getClipboard">讀取剪切板</p>
	  <p>{{ content }}</p>
    </div>
</template>

<script>
export default {
	data() {
		return {
			content: '',
		}
	},
	methods: {
		async getClipboard() {
          // 讀取剪切板
          const clipboardContent = await navigator.clipboard.readText();
          this.content = clipboardContent;
        },
	}
}
</script>

使用原生API:Clipboard.readText() 即可。

其它API

  • Clipboard: read() :該方法理論上可以返回任意數據與readText()不同,後者只能返迴文本)。瀏覽器通常支持讀取文本、HTML和PNG圖像數據

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 近年來,新質生產力、數據要素及數據資產入表等新興概念猶如一股強勁的浪潮,持續衝擊並革新著企業數字化轉型的觀念視野,昭示著一個以數據為核心驅動力的新時代正穩步啟幕。 面對這些引領經濟轉型的新興概念,為了更好地服務於客戶並提供切實可行的實踐指導,自3月20日起,袋鼠雲將推出全新《袋鼠雲大數據實操指南》系 ...
  • 本文分享自華為雲社區《GaussDB(分散式)實例故障處理》,作者:subverter。 一、說明 GaussDB Kernel實例出現故障時,可以按照本節的辦法進行實例快速修複。 1、執行gs_om -t status --detail查看集群狀態,cluster_state為Normal,bal ...
  • 近日,以“行業更優數據底座,華為雲資料庫創新發展論壇”為主題的資料庫分論壇,通過對雲原生資料庫的發展與展望、技術實踐分享與研討,共同探索行業數字化轉型最優解。 ...
  • Android 逆向(四) - adb常用逆向命令 本篇文章繼續記錄下adb 的一些常用逆向命令. 1: adb shell ps 該命令可以查看進程信息. 用法: adb shell ps |grep [pname] zh@zh:~/workSpace$ adb shell ps USER PID ...
  • linux 入門(四) 1: 文件夾下所有文件的大小和詳細信息 du -h --max-depth=1 | sort -hr du命令可以查看文件夾(文件)占用的磁碟大小 ls命令可以查看文件的詳細信息,包括文件大小。 該命令可以按照文件夾(文件)大小的降序排列,並以易讀的方式顯示文件夾(文件)大小 ...
  • 一.引言 在當前的移動開發生態中,跨平臺框架如uni-app因其高效、靈活的特點受到了開發者們的青睞。同時,隨著物聯網技術的飛速發展,智能列印設備已成為許多業務場景中不可或缺的一環。今天,我們就來探討如何使用uni-app輕鬆對接馳騰品牌的智能印表機,實現無線列印功能。無論您是初學者還是有經驗的開發 ...
  • 我們是袋鼠雲數棧 UED 團隊,致力於打造優秀的一站式數據中台產品。我們始終保持工匠精神,探索前端道路,為社區積累並傳播經驗價值。 本文作者:霜序 本文首發於:https://juejin.cn/post/7299384698882539574 在大數據業務中,時常會出現且或關係邏輯的拼接,有需要做 ...
  • 專註探討UUID的核心原理及其生成機制,並詳細介紹不同版本UUID(如版本1的時間戳+節點ID、版本4的隨機數生成等)背後的數學原理和技術細節。 ...
一周排行
    -Advertisement-
    Play Games
  • C#TMS系統代碼-基礎頁面BaseCity學習 本人純新手,剛進公司跟領導報道,我說我是java全棧,他問我會不會C#,我說大學學過,他說這個TMS系統就給你來管了。外包已經把代碼給我了,這幾天先把增刪改查的代碼背一下,說不定後面就要趕鴨子上架了 Service頁面 //using => impo ...
  • 委托與事件 委托 委托的定義 委托是C#中的一種類型,用於存儲對方法的引用。它允許將方法作為參數傳遞給其他方法,實現回調、事件處理和動態調用等功能。通俗來講,就是委托包含方法的記憶體地址,方法匹配與委托相同的簽名,因此通過使用正確的參數類型來調用方法。 委托的特性 引用方法:委托允許存儲對方法的引用, ...
  • 前言 這幾天閑來沒事看看ABP vNext的文檔和源碼,關於關於依賴註入(屬性註入)這塊兒產生了興趣。 我們都知道。Volo.ABP 依賴註入容器使用了第三方組件Autofac實現的。有三種註入方式,構造函數註入和方法註入和屬性註入。 ABP的屬性註入原則參考如下: 這時候我就開始疑惑了,因為我知道 ...
  • C#TMS系統代碼-業務頁面ShippingNotice學習 學一個業務頁面,ok,領導開完會就被裁掉了,很突然啊,他收拾東西的時候我還以為他要旅游提前請假了,還在尋思為什麼回家連自己買的幾箱飲料都要叫跑腿帶走,怕被偷嗎?還好我在他開會之前拿了兩瓶芬達 感覺感覺前面的BaseCity差不太多,這邊的 ...
  • 概述:在C#中,通過`Expression`類、`AndAlso`和`OrElse`方法可組合兩個`Expression<Func<T, bool>>`,實現多條件動態查詢。通過創建表達式樹,可輕鬆構建複雜的查詢條件。 在C#中,可以使用AndAlso和OrElse方法組合兩個Expression< ...
  • 閑來無聊在我的Biwen.QuickApi中實現一下極簡的事件匯流排,其實代碼還是蠻簡單的,對於初學者可能有些幫助 就貼出來,有什麼不足的地方也歡迎板磚交流~ 首先定義一個事件約定的空介面 public interface IEvent{} 然後定義事件訂閱者介面 public interface I ...
  • 1. 案例 成某三甲醫預約系統, 該項目在2024年初進行上線測試,在正常運行了兩天後,業務系統報錯:The connection pool has been exhausted, either raise MaxPoolSize (currently 800) or Timeout (curren ...
  • 背景 我們有些工具在 Web 版中已經有了很好的實踐,而在 WPF 中重新開發也是一種費時費力的操作,那麼直接集成則是最省事省力的方法了。 思路解釋 為什麼要使用 WPF?莫問為什麼,老 C# 開發的堅持,另外因為 Windows 上已經裝了 Webview2/edge 整體打包比 electron ...
  • EDP是一套集組織架構,許可權框架【功能許可權,操作許可權,數據訪問許可權,WebApi許可權】,自動化日誌,動態Interface,WebApi管理等基礎功能於一體的,基於.net的企業應用開發框架。通過友好的編碼方式實現數據行、列許可權的管控。 ...
  • .Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 實測可以完整運行在 win7sp1/win10/win11. 如果用其他工具打包,還可以運行在mac/linux下, 傳送門BlazorHybrid 發佈為無依賴包方式 安裝 WebView2Runtime 1.57 M ...