javascript 剪贴板数据

news2024/11/13 9:41:42

本篇文章将介绍在 JavaScript 中检测粘贴事件上的剪贴板数据。


JavaScript 剪贴板数据

当用户通过浏览器 UI 启动粘贴操作时,将引发粘贴事件。

当光标位于可编辑上下文中时,默认操作是将剪贴板的内容粘贴到光标位置的文档中。 此事件的处理程序可以通过调用事件的 clipboardData 属性上的 getData() 来访问剪贴板的内容。

事件处理程序必须使用 event.preventDefault() 取消默认操作,并手动插入所需数据以覆盖默认行为。 可以创建并发送合成插入事件,但这不会影响文档的内容。

EventTarget 接口的 addEventListener() 方法配置了一个函数,只要指定的事件被传递到目标就会被调用。

举个例子,定义两个 div 元素。 一个是源头,一个是目的地。

Source Div 将包含要从中复制的数据,目标将是粘贴复制数据的位置。

<div class="source">Hello World!</div>
<div class="destination" contenteditable="true">...Good Bye!</div>
const destinationElement = document.querySelector('div.destination');

destinationElement.addEventListener('paste', (event) => {
  const paste = (event.clipboardData || window.clipboardData).getData('text');
  console.log(paste);

  const selection = window.getSelection();
  selection.deleteFromDocument();
  selection.getRangeAt(0).insertNode(document.createTextNode(paste));
  event.preventDefault();
});

在上面的示例中,我们首先使用 querySelector 选择目标元素。 选择元素后,我们将监听粘贴事件。

一旦用户粘贴数据,便会从事件中提取剪贴板数据。

从目标元素中删除原始内容,并将新内容插入到目标元素中。 尝试在任何支持粘贴事件的浏览器中运行上面的代码; 你会得到以下结果。

之前:

粘贴事件之前

之后:

粘贴事件后

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/705084.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

性能优化 :删除项目中没有引用关系的文件 useless-files-webpack-plugin

一般此类包不需要安装到项目中&#xff0c;减少node_modules体积&#xff08;以项目实际情况决定-S/-D&#xff09; npm i useless-files-webpack-plugin -S然后再vue.config.js中配置 const UselessFile require(useless-files-webpack-plugin) chainWebpack: config > …

KEIL支持中文编辑

默认只支持英文&#xff0c;中文一粘贴就变成问号。怎么办&#xff1f; 菜单&#xff1a;Edit, Configuration 点击Encoding的下拉按钮&#xff0c;选择GB2312.

关于Http Header必须了解的知识

header是发送请求时携带的头部信息。通常一些鉴权的信息&#xff1a;authentication/cookie、响应的数据格式&#xff1a;content-type等等的设置。当然响应的数据也会返回一些头部信息。 Requests Header&#xff0c;请求头信息 &#xfeff;&#xfeff; Responses Header&…

自动化测试中如何比较颜色

引言 在做Nightwatch自动化测试中&#xff0c;出现需要比较颜色的时候如何来做&#xff1f; 基本的思路是首先需要取到这个element的颜色值&#xff0c;然后跟预期的颜色进行对比。 比如我要取下面这个会话窗口的颜色&#xff0c;选中这个图标&#xff0c;按F12&#xff0c;查…

Java实现office办公文档在线预览(word、excel、ppt、txt等)

文章目录 一、官网下载openOffice 安装包&#xff0c;运行安装&#xff08;不同系统的安装请自行百度&#xff0c;这里不做过多描述&#xff09; 二、pom中引入依赖 三、office文件转为pdf流的工具类 四、service层代码 五、controller层代码 office办公文档&#xff0c;如doc…

C语言编程—预处理器

预处理器不是编译器的组成部分&#xff0c;但是它是编译过程中一个单独的步骤。简言之&#xff0c;C 预处理器只不过是一个文本替换工具而已&#xff0c;它们会指示编译器在实际编译之前完成所需的预处理。我们将把 C 预处理器&#xff08;C Preprocessor&#xff09;简写为 CP…

文心一言 VS 讯飞星火 VS chatgpt (52)-- 算法导论6.2 4题

四、当i>A.heap-size/2 时&#xff0c;调用 MAX-HEAPIFY(A&#xff0c;i)会有什么结果? 文心一言&#xff1a; 当 i > A.heap-size/2 时&#xff0c;调用 MAX-HEAPIFY(A, i) 会将 A[i] 与其子树中的最大元素进行交换&#xff0c;并将 A[i] 视为新的根节点。这个操作会…

移动WEB开发之flex布局

css基础&#xff08;一&#xff09;css基础&#xff08;一&#xff09;_上半场结束&#xff0c;中场已休息&#xff0c;下半场ing的博客-CSDN博客Emmet语法Emmet语法_上半场结束&#xff0c;中场已休息&#xff0c;下半场ing的博客-CSDN博客css基础&#xff08;二&#xff09;c…

Spring Boot中的STOMP Broker:原理及使用

Spring Boot中的STOMP Broker&#xff1a;原理及使用 简介 STOMP&#xff08;Simple Text Oriented Messaging Protocol&#xff09;是一种基于文本的协议&#xff0c;用于在Web应用程序之间传递消息。STOMP提供了一种简单的方式来实现WebSocket的双向通信。在Spring Boot中&…

centos7.X安装docker---个人学习经验

工具&#xff1a;VMware Workstation Pro 16.1 系统&#xff1a;CentOS-7-x86_64-DVD-2009 docker&#xff1a;docker-ce-24.0.2-1 说明&#xff1a;这是个人在学习安装docker的时候一些经验&#xff0c;如有不对的还请指教&#xff0c;有些步骤因个人专业能力和时间问题并未…

Elasticsearch-01篇(单机版简单安装)

Elasticsearch-01篇&#xff08;单机版简单安装&#xff09; 1. 前言1.1 关于 Elastic Stack 2. Elasticsearch 的安装&#xff08;Linux&#xff09;2.1 准备工作2.1.1 下载2.1.2 解压&#xff08;启动不能用root&#xff0c;所以最好此处换个用户&#xff09; 2.2 修改相应的…

2023年上海市浦东新区网络安全管理员决赛理论题样题

目录 一、判断题 二、单选题 三、多选题 一、判断题 1.等保1.0至等保2.0从信息系统拓展为网络和信息系统。 正确 (1)保护对象改变 等保1.0保护的对象是信息系统,等保2.0增加为网络和信息系统,增加了云计算、大数据、工业控制系统、物联网、移动物联技术、网络基础…

vite环境变量

vite环境变量 import.meta.env对象中存储环vite的境变量 环境变量以VITE_ 为前缀 在不同环境下&#xff0c;自动读取不同的文件 一般命名 .env .env.development .env.test .env.production

四格表fisher检验

一、案例介绍 某医生用新旧两种药物治疗某病患者27人&#xff0c;治疗结果见下表&#xff0c;现在想知道两种两种药物的治疗效果有无差别&#xff1f; 二、问题分析 本案例的分析目的是探究两种治疗效果有无差异&#xff0c;总样本量为27<40&#xff0c;所以考虑使用四格表…

NB-IoT模块(BC系列—BC95)详解

NB-IoT模块&#xff08;BC系列—BC95&#xff09; 0. NB-IoT概述技术原理特点和优势应用领域 1. 常用的NB-IoT模块2. BC系列—BC95技术规格功能特点 3. STM32使用BC95方法BC95的AT指令示例代码 0. NB-IoT概述 NB-IoT&#xff08;Narrowband Internet of Things&#xff09;是一…

万字长文解析最常见的数据库恢复算法: ARIES

#万字长文解析最常见的数据库恢复算法: ARIES 首发地址&#xff1a; https://mp.weixin.qq.com/s/Kc13g8OHK1h_f7eMlnl4Aw Introduction 上图中为基于 WAL 的数据库的一种可能的架构情况。其中&#xff0c;In-Memory Data 为数据库数据在内存中的组织形式&#xff0c;可以是 B …

Element-ui 实现多个日期时间发范围查询

1、前端 <el-form-item label"生产时间"> <el-date-picker v-model"dateProduct" style"width: 240px" value-format"yyyy-MM-dd" type"daterange" range-separator"-" start-placeholder"生产开始…

(三)解析函数及其性质

本文主要内容如下&#xff1a; 1. 复变函数的导数与微分1.1. 复变函数可导、可微、解析与奇点的定义1.2. 复变函数可微的充要条件1.3. 关于复变函数可微性判定的其它形式1.4. 相关结论1.5. 解析函数的构造 2. 解析函数与调和函数2.1. 调和函数与共轭调和函数2.2. 解析函数与调和…

cglib bean复制报错:module java.base does not “opens java.lang“ to unnamed module

在使用cglib bean复制功能时&#xff0c;报下面的错误 Caused by: net.sf.cglib.core.CodeGenerationException: java.lang.reflect.InaccessibleObjectException-->Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,b…