for Event

github: https://github.com/laixiangran/commonJS/blob/master/src/forEvent.js

代码

(function(window, undefined) {

    var com = window.COM = window.COM || {};

    com.$E = {
// 添加事件
addEvent: function(element, type, handler) {
if (element.addEventListener) {
element.addEventListener(type, handler, false);
} else if (element.attachEvent) {
element.attachEvent("on" + type, handler);
} else {
element["on" + type] = handler;
}
}, // 移除事件处理程序
removeEvent: function(element, type, handler) {
if (element.removeEventListener) {
element.removeEventListener(type, handler, false);
} else if (element.detachEvent) {
element.detachEvent("on" + type, handler);
} else {
element["on" + type] = null;
}
}, // 获取对event对象的引用
getEvent: function(event) {
return event ? event : window.event;
}, // 获取事件的目标
getTarget: function(event) {
return event.target || event.srcElement;
}, // 取消事件的默认行为
preventDefault: function(event) {
if (event.preventDefault){
event.preventDefault();
} else {
event.returnValue = false; // IE
}
}, // 阻止事件流(由于IE不支持事件捕获,该方法只能阻止事件冒泡)
stopPropagation: function(event) {
if (event.stopPropagation) {
event.stopPropagation();
} else {
event.cancelBubble = true; // IE
}
}, // 获取事件相关元素
getRelatedTarget: function(event) {
if (event.relatedTarget) {
return event.relatedTarget;
} else if (event.toElement) { // IE下的mouseout事件
return event.toElement;
} else if (event.fromElement) { // IE下的mouseover事件
return event.fromElement;
} else {
return null;
}
}, // 获取鼠标按钮值(0:主鼠标按钮(一般是鼠标左键),1:中间的鼠标按钮(鼠标滚轮按钮),2:次鼠标按钮(一般是鼠标右键))
getButton: function(event) {
// 检测是否支持DOM版鼠标事件
if (document.implementation.hasFeature("MouseEvents", "2.0")) {
return event.button;
} else { // IE
switch (event.button) {
case 0:
case 1:
case 3:
case 5:
case 7:
return 0;
case 2:
case 6:
return 2;
case 4:
return 1;
}
}
}, // 获取鼠标滚轮增量值
getWheelDelta: function(event) {
// 当向前滚动鼠标滚轮时,wheelDelta是120的倍数;当向后滚动鼠标滚轮时,wheelDelta是-120的倍数
if (event.wheelDelta){
// Opera 9.5之前的版本中,wheelDelta值的正负号是颠倒的,则这里需要使用浏览器检测技术来确定实际的值
return (com.$B.engine.opera && com.$B.engine.opera < 9.5 ?
-event.wheelDelta : event.wheelDelta);
} else { // Firefox下,有关鼠标滚轮的信息则保存在detail属性中,当向前滚动鼠标滚轮时,这个属性的值是-3的倍数,当向后滚动鼠标滚轮时,这个属性的值是3的倍数
return -event.detail * 40;
}
}, // 获取键盘事件中的字符ASCII编码
getCharCode: function(event) {
if (typeof event.charCode == "number") {
return event.charCode;
} else {
return event.keyCode; // IE8及之前版本和Opera
}
}, // 获取剪贴板内容
getClipboardText: function(event) {
var clipboardData = (event.clipboardData || window.clipboardData); // clipboardData.getData()用于从剪贴板中取得数据,它接受一个参数,即要取得的数据的格式
// 在IE中,有两种数据格式:"text"和"URL"
// 在Firefox、Safari和Chrome中,这个参数是一种MIME类型;不过,可以用"text"代表"text/plain"
return clipboardData.getData("text");
}, // 设置剪切板内容,设置成功返回true
setClipboardText: function(event, value) {
if (event.clipboardData) {
// 由于Safari和Chrome的clipboardData.setData()方法不能识别"text"类型,则这里只能写"text/plain"
return event.clipboardData.setData("text/plain", value);
} else if (window.clipboardData) {
return window.clipboardData.setData("text", value);
}
}
}
}(window));

commonJS — 事件处理(for Event)的更多相关文章

  1. 简单的事件处理类Event

    class Event{ constructor(){ this.handlers=[] } on(type,fn){ //订阅事件 if(!this.handlers[type]){ this.ha ...

  2. OpenGL的GLUT事件处理(Event Processing)窗口管理(Window Management)函数[转]

    GLUT事件处理(Event Processing)窗口管理(Window Management)函数 void glutMainLoop(void) 让glut程序进入事件循环.在一个glut程序中 ...

  3. 译:DOM2中的高级事件处理(转)

    17.2. DOM2中的高级事件处理(Advanced Event Handling with DOM Level 2)        译自:JavaScript: The Definitive Gu ...

  4. webkit事件处理

    1,概述 原文地址:http://blog.csdn.net/awebkit/article/details/8493716 浏览器处理事件一般有两个过程,捕获过程和冒泡过程,这是由addEventL ...

  5. An Overview of Complex Event Processing

    An Overview of Complex Event Processing 复杂事件处理技术概览(一) 翻译前言:我在理解复杂事件处理(CEP)方面一直有这样的困惑--为什么这种计算模式是有效的, ...

  6. 关于JavaScript的事件处理一些知识

    <JS事件处理> Event对象详细信息:http://www.w3school.com.cn/jsref/dom_obj_event.asp JS原生支持3中绑定事件方式: 1.以标签属 ...

  7. 在SAP CRM WebClient UI中用javascript触发ABAP event

    环境:SAP CRM WebClient UI 需求:在WebClient UI里不通过用户手动点击,而是使用JavaScript代码自动触发ABAP后台的代码. 解决方案: 1. 定义一个hidde ...

  8. Qt事件与常用事件处理、过滤

    转载: https://blog.csdn.net/apollon_krj/article/category/6939539 https://blog.csdn.net/qq_41072190/art ...

  9. 十分钟玩转 jQuery、实例大全

    一.简介 定义 jQuery创始人是美国John Resig,是优秀的Javascript框架: jQuery是一个轻量级.快速简洁的javaScript库.源码戳这 jQuery对象 jQuery产 ...

随机推荐

  1. Uva 1220,Hali-Bula 的晚会

    题目链接:https://uva.onlinejudge.org/external/12/1220.pdf 题意: 公司n个人,形成一个数状结构,选出最大独立集,并且看是否是唯一解. 分析: d(i) ...

  2. 推荐一款非常棒的谷歌插件---快速查看HTML页面元素的CSS样式

    一.下载地址 http://chromecj.com/web-development/2015-05/456/download.html 二.简介 CssViewer是一款快速查看当前页面元素的CSS ...

  3. 解决This function or variable may be unsafe

    工程名字右键属性-->C/C++-->预处理器-->预处理器定义-->加入:_CRT_SECURE_NO_WARNINGS

  4. Struts2框架的运行流程

    Struts2的运行流程 1.浏览器发送请求到控制器(如Struts2中的核心控制器StrutsPrepareAndExecuteFilter): 2.控制器调用Action的execute方法: 3 ...

  5. 六、IO流——文件

    IO流1.字节流(InputStream.OutputStream)2.字符流 (Reader.Writer)3.缓冲流(BufferedInputStream.BufferedOutputStrea ...

  6. mimikatz2.0抓取WINDOWS密码

    看吾爱的,刚好问同事说这个也用过,以后内网渗透的话比较方便 http://www.52pojie.cn/thread-264895-1-1.html ========================= ...

  7. Qt根据汉字生成位图,可连续调用,生成的位图不会有杂点

    void MainWindow::drawText(int font_size, QString str, int n){ QPainter p; QSize size(460, font_size) ...

  8. postgreSql基础命令及linux下postgreSql命令

    (1)用户实用程序: createdb 创建一个新的PostgreSQL的数据库(和SQL语句:CREATE DATABASE 相同) createuser 创建一个新的PostgreSQL的用户(和 ...

  9. 选择屏幕(Selection Screen)

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  10. 序列的方法(str,list,tuple)

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在快速教程中,我们了解了最基本的序列(sequence).回忆一下,序列包含有定值 ...