js 操作剪切板
1.IE浏览器 window.clipboardData:
setData() //设置值
getData()//获取值
clearData()//删除值
/*******
** IE 浏览器下支持window.clipboardData (兼容IE7+)
** 对于URL类型的数据失效
********/
//复制内容到黏贴板
$(':button:first').click(function () {
window.clipboardData.setData('text', "asdfasdfasdf");
//window.clipboardData.setData('URL', 'http://www.baidu.com/');
alert('复制成功');
});
//黏贴内容
$(':button:eq(1)').click(function () {
//获取黏贴板内容
/*
* 获取数据失败,返回null
*/
var result = window.clipboardData.getData('text');
//var result = window.clipboardData.getData('URL'); $('#txtTwo').html($('#txtTwo').html() + result);
}); //清空text数据
$(':button:eq(2)').click(function () {
window.clipboardData.clearData('text');
alert('清空成功');
});
2.IE7+和其他浏览器
1.文本框paste监听
//paste 事件 支持 IE7+和其他
//1.禁用文本框的粘贴事件
//粘贴事件 paste
$('#txtOne').on('paste', function (e) {
e.preventDefault();
}); //注:使用jQuery 绑定事件,无法访问到 e.clipboardData
$('#txtOne').on('paste', function (e) {
console.info(e);
var clip = e.clipboardData;
var text = clip.getData('text');
$('.divOne').append(text + '<br>');
}); //2.监听paste
var txtOne = document.getElementById('txtOne');
EventUtil.addHandler(txtOne, 'paste', function (e) {
console.info(e);
event = EventUtil.getEvent(e);
var text = EventUtil.getClipboardText(event);
$('.divOne').append(text + '<br>');
}); //3.paste时 有选择粘贴
var txtOne = document.getElementById('txtOne');
EventUtil.addHandler(txtOne, 'paste', function (e) {
var event = EventUtil.getEvent(e);
var text = EventUtil.getClipboardText(event);
console.log(text.length);
if (text.length < 10) {
$('.divOne').append(text + '<br>');
}
else {
//禁用黏贴默认操作
EventUtil.preventDefault(event);
}
});
注:jquery event对象不能访问event.clipboardData 说明
jquery.event

dom.event

2.contenteditable 元素paste事件监听
<div id="divOne" class="divOne" contenteditable="true">
</div>
//contenteditable 元素的paste事件
//1.监听paste事件
$('.divOne').on('paste', function (e) {
var thisText = $(this).text();
$('#result').append(thisText);
}); //2.监听paste事件2
var divOne = document.getElementById('divOne');
EventUtil.addHandler(divOne, 'paste', function (e) {
var event = EventUtil.getEvent(e);
var text = EventUtil.getClipboardText(event);
$('#result').append(text + "<br>");
});
使用帮助类:
var EventUtil = {
addHandler: function (element, type, handler) {
if (element.addEventListener) {
element.addEventListener(type, handler, false);
} else if (element.attachEvent) {
element.attachEvent("on" + type, handler);
} else {
element["on" + type] = handler;
}
},
getEvent: function (event) {
return event ? event : window.event;
},
getClipboardText: function (event) {
var clipboardData = (event.clipboardData || window.clipboardData);
return clipboardData.getData("text");
},
setClipboardText: function (event, value) {
if (event.clipboardData) {
return event.clipboardData.setData("text/plain", value);
} else if (window.clipboardData) {
return window.clipboardData.setData("text", value);
}
},
preventDefault: function (event) {
if (event.preventDefault) {
event.preventDefault();
} else {
event.returnValue = false;
}
}
};
更多:
js 操作剪切板的更多相关文章
- Javascript操作剪切板数据(支持IE、Chrome、360、搜狗),亲测!
clipboarddata只能在IE浏览器中使用,在chrome下会提示对象未定义!以下的方法支持IE.Chrome.360.搜狗等浏览器,其它浏览器还未验证. <!DOCTYPE html&g ...
- JS访问剪切板中的图片
google出来一个html2canvas,它利用canvas来渲染读取的DOM树,也就是说它只能截取document里的内容,如果要像qq截图那样,应该怎么做?用过百度的Ueditor编辑器的朋友都 ...
- C# 使用WinApi操作剪切板Clipboard
前言: 最近正好写一个程序,需要操作剪切板 功能很简单,只需要从剪切板内读取字符串,然后清空剪切板,然后再把字符串导入剪切板 我想当然的使用我最拿手的C#来完成这项工作,原因无他,因为.Net框架封装 ...
- JS从剪切板里粘贴图片
功能需求:在网页中,Ctrl+V,把系统剪切板的图片(比如QQ截图)进行粘贴.显示.上传...,提高用户体验. 参考链接:https://ruby-china.org/topics/17266 git ...
- c#操作剪切板
C#定义了一个类System.Windows.Forms.Clipboard来简化剪切板操作,这个类有一个静态方法,主要有: Clear 清除剪切板中的所有数据: ContainsData,Conta ...
- C#操作剪切板(Clipboard)
剪切板是Windows系统提供的功能,从我最早接触到的Windows 3.2版本开始,就一直带着了.以前使用C++的时候,是直接使用Windows API对其进行操作的,到了.NET下,在WinFor ...
- js修改剪切板内容的方法
代码如下: //绑定在了body上,也可以绑定在其他可用元素行,但是不是所有元素都支持copy事件. $(document.body).bind({ copy: function(e) {//copy ...
- 使用ZeroClipboard操作剪切板
一.ZeroClipboard下载地址 点击下载 二.添加js引用 <script src="../Assets/js/jquery-1.8.3.min.js">< ...
- VBS操作剪切板
'设置剪切板的内容 Dim Form, TextBox Set Form = CreateObject("Forms.Form.1") Set TextBox = Form.Con ...
随机推荐
- 详细介绍ASP.NET页面重定向方法
ASP.NET中页面重定向的使用的很频繁,实现方法也有不同,自己也试过几种,现在总结一下. 一.Transfer Execute Redirect重定向方法介绍 1.Server.Transfer方法 ...
- 关于CSRF攻击及mvc中的解决方案 [ValidateAntiForgeryToken]
http://blog.csdn.net/luck901229/article/details/8261640
- ORACLE网络配置大全没有比这个更详细的【weber出品】
一.起篇 现在怎么说也是互联网时代,数据库也要联网,很多朋友学习Oracle的时候无外乎搭建的是以下两种学习环境: 1.直接在windows环境下安装Oracle后直接sqlplus连接. 2.在wi ...
- javascript 获取图片原始尺寸
javascript 获取图片原始尺寸 function getImgInfo(url){ var img = new Image(), loaded = false; var info = {}; ...
- eclipse安装ADT插件重启后不显示Android SDK Manager和Android Virtual Device Manager图标的一种解决办法
通常安装,搭建安卓环境后,不显示Android SDK Manager和Android Virtual Device Manager ize解决方法:Eclipse ->window->c ...
- linux上 安装并 运行opencv
我是在树莓派上安装的. 1.先安装依赖项 OpenCV 2.2以后版本需要使用Cmake生成makefile文件,因此需要先安装cmake. sudo apt-get install build-es ...
- KindleRSS推送服务器搭建
参考http://xcode.so/2010/12/google-gae-rss-to-kindle/这篇文章 1.首先尝试在本机搭建服务器直接推送到kindle 需要使用到kindlereader这 ...
- jQuery中对未来的元素绑定事件
对未来的元素绑定事件不能用bind, 1.可以用live代替,但是要注意jquery的版本,根据官方文档,从1.7开始就不推荐live和delegate了,1.9里就去掉live了. 2.推荐用on代 ...
- 17--Box2D使用(三、触摸交互)
Box2D引擎与触摸的交互通过创建鼠标关节以及碰撞检测来得到触摸点下面的刚体,在根据触摸操作完成相应的功能.首先添加触摸响应函数声明 virtual void ccTouchesBegan(cocos ...
- [转]IBInspectable / IBDesignable
原文:http://www.cocoachina.com/ios/20150227/11202.html 无论陈词滥调多少次,比起一个需要我们记住并且输入什么的界面来说,如果替换成我们能够看见并可控制 ...