attachEvent 与 addEventListener 的监听
说到 attachEvent 与 addEventListener 的事件必然会提到 浏览器的判断,因为attachEvent只适用于于IE
先来看看常用的浏览器的判断
//判断浏览器类型
if(navigator.userAgent.indexOf("MSIE")>0) {
return "MSIE";
}
if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){
return "Firefox"; //火狐
}
if(isSafari=navigator.userAgent.indexOf("Safari")>0) {
return "Safari"; //苹果
}
if(isChrome=navigator.userAgent.indexOf("Chrome")>0) {
return "Chrome"; //谷歌
}
接下来就有了 监听事件
if (navigator.userAgent.indexOf("MSIE") > 0) {
document.getElementById('txtABC').attachEvent("onpropertychange", txtChange);
}
else if (navigator.userAgent.indexOf("Firefox") > 0) {
document.getElementById('txtABC').addEventListener("input", txtChange, false);
}
一起来看看addEventListener 的参数
1:事件名称:click, blur 等事件名称,注意事件名不要带"on"。 在IE 下 才会使用 onclick,也就是 使用attachEvent 事件监听的时候才用加On。
2: 绑定的函数 txtChange 不要加括号。
3: 布尔值,表示事件的响应顺序。当为false时为冒泡获取(由里向外),true时 方式(由外向里)。
当然
document.getElementById('txtABC').attachEvent("onpropertychange", txtChange);
方式 也可以使用jquery 来绑定事件 效果是一样的。
$("#txtArticleName").bind('propertychange', function() {
txChange();
});
这时候就会有一个问题出现,使用多个浏览器 就要写多个判断。
那么我们就换一种思路。使用键盘监听:
//////// 给txtArticleName绑定键盘事件
$("#txtArticleName").bind("keydown", function() {
txtChange();
}
});
大部分浏览器都支持,keydown事件,所以这么写可以兼容大部分浏览器.这样 代码,看起来更简洁。
attachEvent 与 addEventListener 的监听的更多相关文章
- JavaScript addEventListener()事件监听方法
addEventListener()方法将事件处理程序附加到指定的元素. addEventListener()方法将事件处理程序附加到元素,而不覆盖现有的事件处理程序. 您可以向一个元素添加许多事件处 ...
- addEventListener() 事件监听
addEventListener() 用于向指定元素添加事件. 可以向一个元素添加多次事件或者多次不同事件,后面的事件是不会覆盖前面的. 语法: element.addEventListener(ev ...
- window.addEventListener('error')监听页面是否更新版本
因本司更新迭代的速度很快,有时候更改一个BUG就要马上更新版本,就会引起用户在应用当中,页面点击无反应,其实是打包的js和css的包名称更改,找不到以前的包的缘故.我现在用一个小方法,判断js或css ...
- js事件监听-addEventListener (w3c标准) 和 attachEvent(ie)
研究了一个小时,没看懂这两个属性 window.onload = function(){ var oDiv = document.getElementById("J_myDiv") ...
- JS 中的事件绑定、事件监听、事件委托
事件绑定 要想让 JavaScript 对用户的操作作出响应,首先要对 DOM 元素绑定事件处理函数.所谓事件处理函数,就是处理用户操作的函数,不同的操作对应不同的名称. 在JavaScript中,有 ...
- JS 事件绑定,监听,委托(代理)
我们经常会遇到JavaScript的事件机制,例如,事件绑定.事件监听.事件委托(事件代理)等.这些名词是什么意思呢,有什么作用呢? 在JavaScript中,有三种常用的绑定事件的方法: 在DOM元 ...
- JS原生 未来元素监听写法
绑定事件的另一种方法是用 addEventListener() 或 attachEvent() 来绑定事件监听函数. addEventListener()函数语法:elementObject.addE ...
- 事件监听addEventListener----attachEvent
第一:简单的通用方法(IE && FF) window.onload = function(){ var oDiv = document.getElementById("J_ ...
- JS 事件绑定、事件监听、事件委托详细介绍
原:http://www.jb51.net/article/93752.htm 在JavaScript的学习中,我们经常会遇到JavaScript的事件机制,例如,事件绑定.事件监听.事件委托(事件代 ...
随机推荐
- python3之scrapy安装使用
需要安装的包 pip install scrapy selenium 可能需要卸载重装的模块 lxml cryptography cffi pypiwin32 pip uninstall xx ...
- go基本数据类型与运算符
GO基本类型1.布尔(bool) 长度:1字节 取值范围:true,false 注意事项:不可用数字代表true或false2.整型(int/uint) 根据平台 肯能为32位或64位3. 8位整型: ...
- RAC 11gR2模拟OCR和Votedisk损坏恢复过程
1)破坏前的ocr和votedisk信息检查 检查ocr自动备份 [root@rac1 ~]# ocrconfig -showbackup rac2 2013/10/13 09:45:30 /u01/ ...
- Spring缓存源码剖析:(二)CacheManager
一.CacheManager总览 如果需要Spring缓存可以正常工作,必须配置一个CacheManager. CacheManager实现类你可以配置Spring-context本身提供的Simpl ...
- ecshop移动端支付宝支付对接
初始页,提交基本信息到api页面, <?php /* * * 功能:支付宝手机网站支付接口接口调试入口页面 * 版本:3.4 * 修改日期:2016-03-08 * 说明: * 以下代码只是为了 ...
- 关于Unity发布iOS平台代码混淆问题
之前在越狱手机里找到<永恒战士3>的程序发现是用Unity做的,拷出资源出来看的时候发现里面有游戏程序集,立马抽出来反编译了一下,发现里面的代码只有方法签名,没有方法体,还以为用什么高端混 ...
- MyBatis 工具 pndao - 自动写 SQL
pndao的原理并不复杂,是基于MyBatis的方法命名约定来生成SQL,并且写入MyBatis需要的XML. 写之前会判断是否已经存在XML或者注解,如果已经存在则略过此方法,所以无论是注解还是XM ...
- day8-心得
1. Socket介绍 概念 A network socket is an endpoint of a connection across a computer network. Today, mos ...
- Python3.x 常用的新特性
Python3.x 常用的新特性 print() 是函数,不是一个语句 raw_input()输入函数,改为 input() Python 3 对文本和二进制数据做了更为清晰的区分. 文本由unico ...
- Unity调试设置
[Unity调试设置] 1.Mac中,"Unity"->"Preferences...". Windows中,"Edit"->& ...