您的位置:首页 > Web前端 > JavaScript

js中粘贴、复制、剪切操作汇总

2017-03-17 10:23 447 查看
 生的操作对应的是:oncopyonpasteoncut,是全兼容的(ie8++),这里主要针对jq操作 eg1: 展示代码如下:
 $("#ipt-test").bind({
copy : function(){
$('#message').text('copy behaviour detected!');
},
paste : function(){
$('#message').text('paste behaviour detected!');
},
cut : function(){
$('#message').text('cut behaviour detected!');
}
});

但是在实际使用我们一般需要对这个三个函数进行监听,当前操作有没有进行复制剪切拷贝的操作,这里进行一个jq的封装:因为对用户的体验以及在其他原因设置一个10ms的延时操作。比如在密码字段中是不可以进行粘贴复制剪切操作的等使用场景,以及在自定义的编辑器面也是很常使用这几个方法,实时的检测用户的操作,也可以实现ctrl+alt+a { QQ快捷键 }上传图片的功能【 可以查看qq邮箱就实现了这个功能 ,和讯网 文字直播室】。
  // 粘贴事件监控
$.fn.pasteEvents = function( delay ) {
if (delay == undefined) delay = 10;
return $(this).each(function() {
var $el = $(this);
$el.on("paste", function() {
$el.trigger("prepaste");
setTimeout(function() { $el.trigger("postpaste"); }, delay);
});
});
};

在页面中进行调用这这个监听函数:
$( '.test',document.body ).on("postpaste", function(event) { //需要查找 上下文环境
console.log( event.target.value )
console.log( event )
console.log( event.target )
console.log( $(event.target).is('INPUT') )
alert( event.target.nodeName ) // 'INPUT' 全兼容的
alert( event.target.id ) // 'test' 全兼容的

}).pasteEvents();
其他两个方法类似实现。
伸小知识点:jq中动态方法中返回jq对象的一般操作的方法:以前在jq插件开发汇总中有介绍过
$.fn.cssT = function(){
//return this.css('color','red') // 这两者的写法都是一样的效果,目的是返回一个jq对象实现链式调用
var _self = this;
return this.each(function(){ // 在jq源码内部调用this.each其实调用了静态方法each,默认返回的是一个jq对象
_self.css('color','green')
})
}
调用:$('.Text').cssT().css('fontSize','20px');

题:如果有人问那对粘贴的内容,文字或者图片之类的怎么操作,这个又是另一个可以展开的问题js操作粘贴的内容以及粘贴上传,这里主要使用h5的新的API,在浏览器方面可以采用优雅降级的处理方式,ie10++。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: