首页 > 其他分享 >写入和读取剪切板内容

写入和读取剪切板内容

时间:2024-03-20 23:22:23浏览次数:31  
标签:clipboard 写入 API 剪切板 文本 读取

写入剪切板

使用 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图像数据

标签:clipboard,写入,API,剪切板,文本,读取
From: https://www.cnblogs.com/cry0-0/p/18086370

相关文章

  • 【Java】Excel 读取图片
     一、需求背景:做一个大屏管理系统,基础信息包括管理的应用名称,大屏的截图,通过一个excel批量导入excel的单元格里要插入图片,对应一个大屏应用的信息导入需要读取到大屏截图,至于存哪还没说....二、技术实现Hutool这块没有做图片读取的封装,看了网上的方式都是通过poi原生的api......
  • C#.NET 逐行读取TXT文本
    C#.NET逐行读取TXT文本usingSystem;usingSystem.IO;classProgram{staticvoidMain(){stringfilePath=@"C:\path\to\your\file.txt";//替换为你的TXT文件路径try{//创建一个StreamReader......
  • VBA读取 Excel 并按工作表拆分成多个 Excel
    新建窗体SubSplitExcelByMonth()'OnErrorGoToErrorHandler'启用错误处理OnErrorResumeNextApplication.ScreenUpdating=FalseApplication.DisplayAlerts=FalseDimexclePath,sourceSheetName,groupSheetName,filterI......
  • jmeter 把响应结果数据写入指定txt文件
    需要把登陆接口返回的token提取出来,保存到一个文件里给其它接口用。登陆接口响应如下在登陆接口取样器下添加"JSON提取器",提取token 在登陆接口取样器下添加"BeanShell后置处理程序" 代码如下://指定需要定稿到哪个文件,格式:TXT,CSVFileWriterfile......
  • 【ARM 嵌入式 C 入门及渐进11 -- 确保数据写入寄存器】
    文章目录背景1.内存障碍2.对齐访问3.缓存一致性4.写缓冲区背景在ARM架构中,要确保通过write函数写入的数据真正地被写入到寄存器中,需要考虑几个方面:内存障碍(MemoryBarrier):使用内存障碍指令来确保之前的所有内存操作完成后再执行后续的指令。对齐访问:确保......
  • 16. SPI读取FLASH
    一、EN25Q128简介  EN25Q128是大容量SPIFLASH产品,EN25Q128的容量为128Mb(16M字节)。学习这个芯片可以参考华邦公司的W25Q128芯片,因为它们是完全兼容的。  FLASH是常见的用于存储数据的半导体器件,它具有容量大、可重复擦写、按“扇区/块”擦除、掉电后数据可继续保存......
  • 超全!Python读取文件方法
    文件是无处不在的,无论我们使用哪种编程语言,处理文件对于每个程序员都是必不可少的文件处理是一种用于创建文件、写入数据和从中读取数据的过程,Python拥有丰富的用于处理不同文件类型的包,从而使得我们可以更加轻松方便的完成文件处理的工作本文大纲:使用上下文管理器打开......
  • 【数字图像处理系列】读取图像
    【数字图像处理系列】读取图像使用函数imread可以将图像读人MATLAB环境,imread的语法为imread('filename')其中,filename是一个含有图像文件全名的字符串(包括任何可用的扩展名)。例如,命令行>>f=imread('pout.tif')将tif图像pout读人图像数组f。就像上面的这个......
  • 用友U8 CRM客户关系管理系统 getemaildata.php 任意文件读取漏洞&任意文件上传漏洞
    漏洞简介用友U8CRM客户管理系统getemaildata.php存在任意文件读取漏洞,攻击者通过漏洞可以获取到服务器中的敏感文件。用友U8CRM客户关系管理系统getemaildata.php文件存在任意文件上传漏洞,攻击者通过漏洞可以获取服务器权限。Fofa:body="用友U8CRM"登录界面文件上传漏洞复......
  • 读取设置密码保护的excel文件,有没有更好的办法?
    大家好,我是Python进阶者。一、前言前几天在Python最强王者交流群【wen】问了一个Python处理Excel加密文件读取问题。问题如下:请教:读取设置了密码保护的exlce文件,df=pd.read_excel(file,password='12345678') 报错:gotanunexpectedkeywordargument"password"  目前的解......