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了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM