定义

  剪贴板操作包括剪切(cut)、复制(copy)和粘贴(paste)这三个操作,快捷键分别是ctrl+x、ctrl+c、ctrl+v。当然也可以使用鼠标右键菜单进行操作

对象事件

  关于这3个操作共对应下列6个剪贴板事件

    copy:在发生复制操作时触发

    cut:在发生剪切操作时触发

    paste:在发生粘贴操作时触发

    beforecopy:在发生复制操作前触发

    beforecut:在发生剪切操作前触发

    beforepaste:在发生粘贴操作前触发

  IE浏览器只有在文本中选定字符时,copy和cut事件才会发生。且在非文本框中(如div元素)只能发生copy事件

  firfox浏览器只有焦点在文本框中才会发生paste事件

<input type="text" id="test">
<script>
var el = document.getElementById('test');
el.oncut = el.oncopy = el.onpaste = function (e) {
e = e || event
el.value = e.type;
console.log(e) // cut || paste || copy
}
el.onbeforepaste= el.onbeforecopy = el.onbeforecut = function(e){
e = e || event;
el.value = e.type;
return false;
} </script>

对象方法

  剪贴板中的数据存储在clipboardData对象中。对于IE浏览器来说,这个对象是window对象的属性;对于其他浏览器来说,这个对象是事件对象的属性

    e = e || event;
var clipboardData = e.clipboardData || window.clipboardData;

  这个对象有三个方法:getData()、setData()和clearData ()

  getData()

    getData()方法用于从剪贴板中取得数据,它接受一个参数,即要取得的数据的格式。在IE中,有两种数据格式:"text" 和 "URL"。在其他浏览器中,这个参数是一种MIME类型;不过,可以用"text"代表

[注意]在IE浏览器中,cut和copy事件中的getData()方法始终返回null;而其他浏览器始终返回空字符串''。但如果和setDada()方法配合,就可以正常使用

<input type="text" id="test">
<script>
var el = document.getElementById('test');
el.oncut = el.oncopy = el.onpaste = function (e) {
e = e || event
var clipboardData = e.clipboardData || window.clipboardData;
console.log(e.type, clipboardData.getData('text'));
}
// copy
// cut
// paste 内容
</script>

  setData()

    setData()方法的第一个参数也是数据类型,第二个参数是要放在剪贴板中的文本。对于第一个参数的规则与getData()相同

    在IE浏览器中,该方法在成功将文本放到剪贴板中后,返回true,否则返回false;而其他浏览器中,该方法无返回值

[注意]在paste事件中,只有IE浏览器可以正常使用setData()方法,chrome浏览器会静默失败,而firefox浏览器会报错

  clearData()

    clearData()方法用于从剪贴板中删除数据,它接受一个参数,即要取得的数据的格式。在IE中,有两种数据格式:"text"和"URL"。在其他浏览器中,这个参数是一种MIME类型;不过,可以用"text"表示

深入理解DOM事件类型系列——剪贴板事件的更多相关文章

  1. javaScript事件(六)事件类型之滚轮事件

    滚轮事件其实就是一个mousewheel事件,这个事件跟踪鼠标滚轮,类似Mac的触屏版. 一.客户区坐标位置 鼠标事件都是在浏览器视口的特定位置上发生的.这个位置信息保存在事件对象的clientX和c ...

  2. javaScript事件(八)事件类型之变动事件

    DOM2级的变动(mutation)事件能在DOM中某一部分发送变化时给出提示.变动事件为XML或HTML DOM设计的,并不特定于某种语言.DOM2级定义了如下变动事件. DOMSubtreeMod ...

  3. 深入理解DOM事件类型系列第四篇——剪贴板事件

    × 目录 [1]定义 [2]对象方法 [3]应用 前面的话 剪贴板操作可能看起来不起眼,但是却十分有用,可以增强用户体验,方便用户操作.本文将详细介绍剪贴板事件 定义 剪贴板操作包括剪切(cut).复 ...

  4. 深入理解DOM事件类型系列第二篇——键盘事件

    × 目录 [1]类型 [2]顺序 [3]按键信息[4]应用 前面的话 鼠标和键盘是电脑端主要的输入设备,上篇介绍了鼠标事件,本文将详细介绍键盘事件 类型 键盘事件用来描述键盘行为,主要有keydown ...

  5. 深入理解DOM事件类型系列第一篇——鼠标事件

    × 目录 [1]类型 [2]顺序 [3]坐标位置[4]修改键[5]相关元素[6]鼠标按键[7]滚轮事件[8]移动设备 前面的话 鼠标事件是web开发中最常用的一类事件,毕竟鼠标是最主要的定位设备.本文 ...

  6. 深入理解DOM事件类型系列第三篇——变动事件

    × 目录 [1]删除节点 [2]插入节点 [3]特性节点[4]文本节点 前面的话 变动(mutation)事件能在DOM中的某一部分发生变化时给出提示,这类事件非常有用,但都只能使用DOM2级事件处理 ...

  7. 深入理解DOM事件类型系列第六篇——加载事件

    前面的话 提到加载事件,可能想到了window.onload,但实际上,加载事件是一大类事件,本文将详细介绍加载事件 load load事件是最常用的一个事件,当页面完全加载后(包括所有图像.java ...

  8. JavaScript 事件——“事件类型”中“HTML5事件”的注意要点

    contextmenu事件 该事件用以表示何时应该显示上下文菜单,以便开发者取消默认的上下文菜单,转而提供自定义的菜单. 因为该事件属于鼠标事件,所以其事件对象中包含与光标位置有关的所有属性.如: & ...

  9. 深入理解DOM节点类型第七篇——文档节点DOCUMENT

    × 目录 [1]特征 [2]快捷访问 [3]文档写入 前面的话 文档节点document,隶属于表示浏览器的window对象,它表示网页页面,又被称为根节点.本文将详细介绍文档节点document的内 ...

随机推荐

  1. HTTP要点概述:六,HTTP报文

    一,HTTP报文: 用于HTTP交互的信息称为HTTP报文.请求端(客户端)的HTTP报文叫做请求报文,响应端(服务器)的叫做响应报文.HTTP报文本身是由多行(用CR+LF换行)数据构成的字符串文本 ...

  2. go6---slice切片

    package main /* 切片Slice 其本身并不是数组,它指向底层的数组 作为变长数组的替代方案,可以关联底层数组的局部或全部 为引用类型 可以直接创建或从底层数组获取生成 使用len()获 ...

  3. HttpClient-03Http状态管理

    最初,Http被设计成一个无状态的,面向请求/响应的协议,所以它不能在逻辑相关的http请求/响应中保持状态会话.由于越来越多的系统使用http协议,其中包括http从来没有想支持的系统,比如电子商务 ...

  4. JPG文件格式

    开始:0xFF 0xD8 结束:0xFF 0xD9 文件的宽高:0xFF 0xC0 之后隔二个字节(0x11 0x08 这二个字节一般是固定的.描述这个块的长度.) 然后用四个字节来存储图片的高和宽0 ...

  5. SQL Server: Difference between PARTITION BY and GROUP BY

    https://stackoverflow.com/questions/2404565/sql-server-difference-between-partition-by-and-group-by ...

  6. 【BJOI 2018】 求和

    [题目链接] 点击打开链接 [算法] 预处理i^k的前缀和,对于每次询问,树上倍增即可 时间复杂度 : O(nk + mlog(n)) [代码] #include<bits/stdc++.h&g ...

  7. 解决 IDEA 中文乱码

    一.打开Intellij的根目录,找到下图的两个文件(根据你的系统是32位或64位选择其中一个配置文件),在配置文件中添加:-Dfile.encoding=UTF-8 二.   配置IDE编码 点击F ...

  8. 转贴:获取元素CSS值之getComputedStyle方法熟悉

    获取元素CSS值之getComputedStyle方法熟悉 一.碎碎念~前言 我们都用过jQuery的CSS()方法,其底层运作就应用了getComputedStyle以及getPropertyVal ...

  9. 10.11 NOIP模拟题(1)

    /* 离散化 差分 */ #include<bits/stdc++.h> #define N 4000007 using namespace std; int n,ans; int tmp ...

  10. 洛谷 P2090 数字对

    发现如果给定两个数(a,b),可以用类似辗转相除法在logn的时间内计算出(反向)变到(1,1)的最小步数. 然而并不知道另一个数是多少? 暴力嘛,枚举一下另一个数,反正1000000的nlogn不虚 ...