14.2.2过滤输入

1、屏蔽字符

兼容版:

var textbox = document.forms[0].elements[0];
    EventUtil.addHandler(textbox,'keypress',fn);
    function fn(event){
        event = EventUtil.getEvent(event);
        var charCode = EventUtil.getCharCode(event);
        /*
            charCode 获取按键的编码
            String.fromCharCode( charCode )转换为相应的字符
            charCode>9 判断按键为非字符按键
            firefox中非字符按键编码为 0
            safari3以前中飞字符按键编码为 8
            为了让代码更通用,只要屏蔽那些字符编码小于10的键即可
            event.ctrlKey 事件表示ctrl是否被按住并没有松开,返回true
        */
        if (!/d/.test(String.fromCharCode(charCode)) && charCode > 9 && !event.ctrlKey)
        {
            //屏蔽默认事件
            EventUtil.preventDefault(event);
        }

    }

2、操作剪切板

IE是第一个支持与剪切板相关的事件,

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

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

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

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

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

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

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

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

 这边文章分析的很详细

https://www.cnblogs.com/xiaohuochai/p/5882902.html

var textbox = document.forms[0].elements[0];
    EventUtil.addHandler(textbox,'copy',function(event){
        event = EventUtil.getEvent( event );
        var clipboardData = event.clipboardData || window.clipboardData;
        /*
            如果在剪切和复制时触发事件
            单独使用clipboardData.getData('text');//IE返回null firefox和Chrome返回空
            只能配合clipboardData.setData('text','content');
            然后再用clipboardData.getData('text');//可以返回正常的对象数据
        */
        //clipboardData.setData('text','abc');
        //this.value = clipboardData.getData('text');
        alert( clipboardData.getData('text') );
    });

获取剪切板兼容版:

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);
                }
            }
原文地址:https://www.cnblogs.com/jokes/p/9871261.html