jQuery event的复制粘贴的坑

jQuery为了兼容性会把系统暴露出来的event重新整理一遍,但是复制粘贴的event就被丢掉了。

所以要在所有原生浏览器想实现复制粘贴,大家都用flash实现了。其实只要用原生的方法捕获事件就ok。简单来个方法。

var EventUtil = {
        addHandler: function (element, type, handler) {
            if(!element)
                return false;
            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;
            }
        }
    };

 

用原生的addEventListener暴露出来的e就有clipboardData了。

posted @ 2014-08-22 10:37  Bug罗  阅读(4517)  评论(1编辑  收藏  举报