zoukankan      html  css  js  c++  java
  • 关于浏览器中copy, cut, paste捕获的总结

    目前这三个事件均可以通过jQuery.on(“copy cut paste”, handlerFn)捕获,支持:Firefox, IE9, Chrome,网上说的使用setTimeout方式目的是为了获取粘贴到输入框后的全部的值;

    setTimeout方式的示例代码如下:

    $("input").off("paste").on("paste", function(e){
        setTimeout(function(){
            var val = $(this).val();
            // 获取粘贴到输入框后的值,进行验证处理
        }, 100);
    });
    

    handlerFn的触发是在"鼠标右键粘贴点击"之后,"输入框显示粘贴值"之前;如果想禁用此功能,可以使用:e.preventDefault()禁止粘贴的操作;

    根据MDN上的介绍,这三类事件统称为:ClipboardEvent,在handlerFn中可以通过getData方法获取到数据;只是当前这个API仅有Chrome和Firefox22以上支持,所以被用到的并不广泛;

    示例代码如下:

    $("input").off("paste").on("paste", function(e){
      var eData = e.originalEvent.clipboardData;
      console.log("paste:", arguments, e.originalEvent, eData, eData.types, eData.getData("text/plain"));
    });
    

    当前W3C称该类文档为:Clipboard API and events,处于工作草案的状态(Working Draft),不属于Html5的推荐;

    具体请参考:

    MDN    https://developer.mozilla.org/en-US/docs/Web/Events/paste

    W3C Draft http://www.w3.org/TR/clipboard-apis/#paste-event

  • 相关阅读:
    企业组织与经营管理
    VS2008试用版到期解决办法
    [分期付款] 建行安居分期,刚申请过,最高额度居然能申请到100万!汗。。
    [手游新项目历程]-29- windows-PC与 linux虚拟机交互
    诛仙手游培元属性
    [Warning] TIMESTAMP with implicit DEFAULT value
    bzoj3631
    bzoj1257
    bzoj1041
    bzoj1560
  • 原文地址:https://www.cnblogs.com/diydyq/p/4073959.html
Copyright © 2011-2022 走看看