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. 数字证书私钥sign及验证

    package com.epay.bank.test.encrypt; import java.io.FileInputStream; import java.security.KeyStore; i ...

  2. hdu 2258 优先队列

    Continuous Same Game (1) Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java ...

  3. iis6兼容32位运行

    做web服务迁移,从32位win2003迁移到64位win2003,数据库是32位Oracle在另外一台服务器上. 迁移之后数据库各种连不上,oracle的客户端32位的装完装64位的,odp.net ...

  4. 【Nginx】使用Nginx做反向代理时,关于被代理服务器相应的超时设置

    > 参考的优秀文章 Module ngx_http_proxy_module > 设置等待被代理服务器的最大响应时间 使用Nginx做反向代理时,因被代理服务器因业务确实复杂,需时较久,往 ...

  5. 改变HTML

    改变HTML 1.改变HTML输出流 JavaScript可以创建动态的HTML内容.(注意:不要在加载文档后使用document.write(),这会覆盖文档.) <%@ page langu ...

  6. Struts2的标签库(一)——使用Struts2的标签库

    Struts2的标签库(一) --使用Struts2的标签库 1.Struts2的标签库其实就是一个自定义的标签库,所以它也有它的标签处理类和标签库定义文件: 2.和所有自定义标签一样,我们可以找到S ...

  7. uTenux\AT91SAM3S4C开发套件———硬件电路介绍

    无论写什么嵌入式软件,我们都应该首先对硬件有所了解,这样更有助于我们写出高效精简的程序代码.本次活动我们使用的硬件平台是有悠龙公司提供的uTenux\AT91SAM3S4C开发套件,在悠龙公司的主页可 ...

  8. <marquee>属性详解

    http://www.360doc.com/content/14/1210/17/9060464_431831883.shtml

  9. Java_类文件及加载机制

    类文件及类加载机制 标签(空格分隔): Java 本篇博客的重点是分析JVM是如何进行类的加载的,但同时我们会捎带着说一下Class类文件结构,以便对类加载机制有更深的理解. 类文件结构 平台无关性 ...

  10. 巧遇"drwxr-xr-x."权限

    drwxr-xr-x. 是SELinux的问题 REDHAT6之后安全提高所以设置的 关闭SELINUX就好了 因为新版本ls把多acl和selinux属性加进去了,与系统无关,新版本的ls代码使用1 ...