`
wyf
  • 浏览: 424777 次
  • 性别: Icon_minigender_1
  • 来自: 唐山
社区版块
存档分类
最新评论

兼容所有浏览器事件注册

    博客分类:
  • JS
 
阅读更多
//EventUtil 的用法如下所示。
var EventUtil = {

 addHandler: 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;
 }
 },
 removeHandler: 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;
 }
 }
}; 
//使用
var btn = document.getElementById("myBtn");
var handler = function(){
 alert("Clicked");
};
EventUtil.addHandler(btn, "click", handler);
//这里省略了其他代码
EventUtil.removeHandler(btn, "click", handler); 

 EventUtil增强

var EventUtil = {

 addHandler: function(element, type, handler){
 //省略的代码
 },
 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;
 }
 },

 removeHandler: function(element, type, handler){
 //省略的代码
 },
 stopPropagation: function(event){ 
if (event.stopPropagation){
 event.stopPropagation();
 } else {
 event.cancelBubble = true;
 }
 }
};

 Demo

var list = document.getElementById("myLinks");
EventUtil.addHandler(list, "click", function(event){
 event = EventUtil.getEvent(event);
 var target = EventUtil.getTarget(event);
 switch(target.id){
 case "doSomething":
 document.title = "I changed the document's title";
 break;
 case "goSomewhere":
 location.href = "http://www.wrox.com";
 break;
 case "sayHi":
 alert("hi");
 break;
 }
});

 

分享到:
评论

相关推荐

    JS兼容所有浏览器的DOMContentLoaded事件

    主要介绍了JS兼容所有浏览器的DOMContentLoaded事件的相关资料,标准浏览器中,使用DOMContentLoaded事件即可实现我们的要求,注册事件处理函数也极为简单,感兴趣的朋友一起学习吧

    .net和 vb WebBrowser 浏览器兼容问题

    .net和 vb WebBrowser 浏览器兼容问题自己封装的开发中遇到的第一次加载注册表可能未注册 F5一下就会成功

    browserevent:WebdriverIO项目的插件可侦听客户端浏览器事件

    要注册事件,请调用addEventListener命令。 如果事件被调用,它将返回浏览器捕获的几乎完整的事件对象。 只有Window属性将被删除,以避免循环引用。 HTMLElement类型的所有对象都将被其xPath替换。 这将帮助您使用...

    JavaScript 复制功能代码 兼容多浏览器(ZeroClipboard)

    Zero Clipboard实现简单跨浏览器复制 var clip = new ZeroClipboard.Client(); // 新建一个对象 clip.setHandCursor( true ); // 设置鼠标为手型 clip.setText("哈哈"); // 设置要复制的文本。 // 注册一个 button,...

    dfx10 浏览器 音效增强 工具注册版

    dfx10 浏览器 音效增强 工具,兼容所有常见浏览器,Crack 目录中的文件覆盖安装目录即可。

    基于浏览器JS实现扫描二维码

    1.部分浏览器不兼容(随着浏览器的更新兼容度会越来越高) 2.安全要求必须基于HTTPS访问。 3.夜拍模式不能自主控制开启补光。 基于URL Scheme,调用第三方APP实现扫码 实现原理:app之间为提高相互之间的深度连接性...

    IDM下载工具,浏览器下载工具,扩展工具,万能兼容

    浏览器下载工具,扩展工具,万能兼容

    iWander 浏览器

    与其他多窗口浏览器不同的是,飓风浏览器操作方式和界面完全兼容您日常使用的IE,在大 幅度改善您浏览性能和乐趣的同时不改变您的习惯。 完全免费,无时间限制,无功能限制,不需要注册,无插件!

    ens-registrar-dapp, 注册DApp的Ethereum名称服务.zip

    ens-registrar-dapp, 注册DApp的Ethereum名称服务 Ethereum NAME 服务注册员 DApp这里应用允许你在 register 分散应用和兼容区块链浏览器中使用一个. eth 域 NAME 。检查 ens.domains 以获得有关确保。尝试应用:...

    js前端浏览器打开本地exe程序demo(类似百度网盘效果)

    3. 跨平台兼容性:由于该功能是基于浏览器实现的,因此可以在不同的操作系统和设备上使用,具有良好的跨平台兼容性。 4. 简化开发和维护:通过添加注册表的方式实现该功能,可以简化开发和维护工作。开发人员只需要...

    Windows Edge 兼容性问题修复

    Windows Edge 启动提示兼容性问题:【一个不兼容的软件尝试与Microsoft Edge一起加。。。】 错误代码:STATUS_INVALID_IMAGE_HASH 解决方法:通过新增注册表项,使edge与其添加的插件能同时启动

    jquery 注册步骤效果

    注册步骤效果流程兼容各浏览器

    JavaScript Event学习第二章 Event浏览器兼容性

    这些事件在几乎所有的JavaScript浏览器都能运行,即使是那些非常古老的。需要注意的是那些早期的事件只能工作在链接或者表单上,有时候也能运行在整个窗口上,但是其他的大多数HTML元素不行。 时代变迁,很多新的...

    兼容主流浏览器的jQuery+CSS 实现遮罩层的简单代码

    1.注册框始终水平、垂直居中,包括鼠标滚轮上下滚动页面、缩放页面和调整浏览器窗口大小时 主要由CSS控制,注册框的宽度和高度都已经确定( 620*420px ),首先使用position:fixed来使它相对于浏览器窗口绝对定位;...

    MiniIE浏览器(语音朗读版) V1.7.919.rar

     ·网络收藏夹功能:只要注册一个帐号即可象使用本地收藏夹一样方便地使用网络收藏夹。在任何地方、任何电脑都可永久免费地使用网络收藏夹。  ·内置强大的网页、图片、音乐、电影、电视、游戏、软件、驱动等资源...

    oTraining在线培训系统 2.5.zip

    功能特点:支持10种不同课件类型 学习情况实时监控 兼容所有浏览器 支持万人同时在线 在线支付 多语言支持 完善的数据备份 学习专注度监控 安装升级简单方便 兼容所有操作系统 快速实现系统集成 用户添加...

    oExam在线考试系统 2.5.zip

    智能的组卷方案 试题添加管理简便 兼容所有操作系统 快速实现系统集成 用户添加管理简便 权限设置人性化 完善的数据备份 支持14种不同题型 多维度统计分析 安装升级简单方便 兼容所有浏览器 支持万人同时...

    Pimple.js:Pimple 是 javascript 的依赖注入容器,兼容所有支持 javascript 的浏览器

    Pimple 是 javascript 的依赖注入容器,兼容所有支持 javascript 的浏览器。 见: : 作者 M.Paraiso,受 Fabien Potencier 的 Pimple 启发: : 联系方式: 状态:测试版 特征: AMD 兼容 更改日志 0.0.4 疙瘩...

    JavaScript Event学习第四章 传统的事件注册模型

    在最古老的JavaScript浏览器里注册事件只能通过内联模式。自从DHTML从根本上改变了你操作页面的方法,事件的注册就必须有扩展性而且要有很强的适应性。所以就必须有相应的事件模型。Netscape在第三代浏览器中就开始...

    友评互动浏览器 2011(1.0.4)

    友评互动浏览器是基于IE内核开发的首款集浏览器、IM(聊天工具)为一体的娱乐浏览器,而且拥有超强拦截弹窗广告功能,上网速度快,兼容性好。同时还具有查看与您浏览同一网页的网友;对任何网页进行评论;查看别人对...

Global site tag (gtag.js) - Google Analytics