Array & Event & Dom 兼容总结
来源:互联网 发布:js中的splice方法 编辑:程序博客网 时间:2024/06/01 09:04
Dom
元素节点 & 属性节点 & 文本节点
nodeName & tagName & nodeValue
测试代码
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title></head><body> <div id="aa"> <a id="dd" value="11">11 </a> </div></body></html>
nodeName与tagName在浏览器中没有兼容问题,返回值是全大写。
下面是文本节点的属性
下面是元素节点
下面是文本节点
nodeName在任意类型节点都有。tagName只在元素节点中有。
- 文本节点:nodeName=#text
- 元素节点:nodeName=标签名(全大写)
- 属性节点:nodeName=属性名(全小写)
nodeValue保存节点内容。元素节点不直接包含文本(包含的是文本节点),因此nodeValue=null。
- 文本节点:nodeValue=文本值
- 元素节点:nodeValue=null
- 属性节点:nodeValue=属性值
参考博文:
认识DOM的三大节点:元素节点,文本节点,属性节点以及nodeName,nodeType,nodeValue的区别 - 推酷
Event
event存在兼容性问题,在ie中,event在window上面,而FF则只能从回调中获取,兼容代码:var event = evt || window.event
。
jQuery为event做了兼容,使用jq做事件绑定,IE也可从回调中获取Event对象。
jQuery返回的Event对象属性上做了调整,比如只有target,取消了srcElement。只有which,取消了keyCode等。
chrome原生Event(callback回调):
IE原生Event(window.event):
JQ兼容Event(IE、chrome、ff都从Callback回调获取):
事件绑定 attachEvent & addEventListener & on<事件>
<div onClick='fn()'></div>
document.getElementById(<id>).onclick=fn
通用document.getElementById(<id>).attachEvent("onclick",fn)
IE8-(包含IE8),多次使用可设置多个fn(取消其中一个FndetachEvent("onclick",fn)
)document.getElementById(<id>).addEventListener("click",fn,是否捕获时生效)
非IE或IE9+(包含IE9),多次使用可设置多个fn(取消其中一个FnremoveEventListener("click",fn,是否捕获时生效)
)
参考博文:
- js 事件绑定的方法 - cbwcwy - 博客园
触发元素 event.target & window.event.srcElement
在ie中,event对象没有target属性,而是srcElement。FF则相反,只有srcElement。谷歌都有。
function callback(evt){ var event = evt || window.event; var target = event.target || event.srcElement; ...}
键盘按键 event.which & window.event.keyCode
event对象对于键盘按钮有一一对应的数字编码,IE下对应window.event.keyCode
,而FF则对应event.which
,谷歌与FF一样,只有which属性,没有keyCode属性。
function callback(evt){ var event = evt || window.event; var code = event.which || event.keyCode; ...}
阻止冒泡 event.stopPropagation() & window.event.cancelBubble
在IE中只支持事件冒泡,并且Event对象没有stopPropagation()函数(FF和谷歌都有,jq为event对象的函数进行了兼容)。
引入jq前,IE中的event对象
引入jq后
IE默认可以使用window.event.cancelBubble = true
来阻止冒泡。
遍历方法
forEach(item,index)
Array.prototype上的一个方法,只有FF和谷歌拥有,而IE没有(经测试,jq没有为其做兼容)。
参考博文:
- Javascript 数组循环遍历之forEach
- Array & Event & Dom 兼容总结
- event 兼容
- window.event兼容firefox
- 浏览器兼容Event事件
- window.event 兼容 问题
- window.event 兼容 问题
- Firefox 不兼容event
- javascript Event兼容封装
- Dom event listener
- HTML DOM Event 对象
- DOM和Event
- HTML DOM Event Object
- HTML DOM onload Event
- HTML DOM Event 对象
- WebKit DOM Event 实现
- HTML DOM Event 对象
- WebKit DOM Event (一)
- WebKit DOM Event (二)
- jquery 省份选择器
- Java Map的一点知识点
- OpenAM Web Policy Agent Release Notes---笔记
- n的思想计数器思想万能法
- android studio 中去除actionbar 标题栏的方法。requestWindowFeature(Window.FEATURE_NO_TITLE)无效
- Array & Event & Dom 兼容总结
- 构造器初始化的顺序
- Facebook 开源动画框架 Pop
- 剑指Offer----扩展:删a复制b
- 博大精深的VS的快捷键
- 347. Top K Frequent Elements
- typedef的使用
- Codeforces刷题之路——710A King Moves
- TimePicker 异常处理