charcode与keycode.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
charcode与keycode

IE和FireFox处理childNodes的异同 javascript中,可能会用到getElementsByTagName和childNodes来实现对节点的遍历。但是getElementsByTagName对DOM结构复杂的树遍历就明显不如用childNodes,因为childNodes能更好的处理DOM的层次结构暂不比较他们的优劣,在这里我想说下的是用childNodes遍历DOM节点时,Firefox和IE的一个细微差别。 nodeName=#text,你遇到过么? 下面这里给出一个例子: script type=text/javascript function view(){ var pn1=document.getElementById(pn1); var pn2=document.getElementById(pn2); var childs1=pn1.childNodes; var childs2=pn2.childNodes; alert(length of pn1: +childs1.length+--length of pn2: +childs2.length); } /script input type=button value=查看节点长度 onclick=view(); / div id=pn1!--第一个遍历对象,节点之间留有空格和回车-- divfirst/div divsecond/div divthird/div /div div id=pn2!--第二个遍历对象,除注释外,节点间无空格回车--divfirst/divdivsecond/divdivthird/div/div 上面的例子有两个对象,用IE和Firefox运行会有两个不同的结果:IE的结果是3:3;而Firefox则是7:3。怎么会有这种情况呢? 在结构上,对象1和对象2不同的是对象1的子节点间有回车或者空格,而对象2则是一行写到尾。大家都应该想到了吧,IE是将一个完整标签作为一个节点。而Firefox除了上述的的情况外,也把一个标签的结束符“”到下一个标签的起始符“”之间的内容(除注释外,包括任何的文字、空格、回车、制表符)也算是一个节点了。而且这种节点也有它们自己独特的属性和值--nodeName=#text。 Firefox中,如果html按照大众化的 (其实就是各种html编辑器的默认的) 写法,用childNodes获得的子节点减1除2,那大概就是大家所需要的节点数了。(比方说只有3个html元素节点,节点间夹着有2个#text的节点,并且一头一尾各1个,那就是7个节点了。但是不推荐通过这样的方法获得真实的节点数,因为真实的节点数是要看html里面的层次结构。) 在实际运用中,Firefox在遍历子节点时,在for循环里不妨加上: if(childNode.nodeName==#text) continue; 或者nodeType == 1。 这样,便跳过不需要的操作,使程序运行的更有效率。 keyCode和charCode键盘事件拥有两个属性,keyCode和CharCode,他们之间有一些不一样之处。keyCode表示用户按下键的实际的编码,而charCode是指用户按下字符的编码。keyCode : IE 与? w3c兼容浏览器 keydown ,keyup 时 event 的 keyCode 为实际按键的值 。 例如: shift + a ==? 16 + 65 charCode : ?w3c兼容浏览器 在 keypress(shift等非实际值键忽略) 时 event 存在 charCode 属性为对应字符值,keyCode 统一为0。 ? IE 只有 keyCode, 则在 keypress(shift等非实际值键忽略) 时仍然采用 keyCode ,不过此时为对应字符值,没有charCode 属性。 ?例如: shift + a : { ie: keyCode :97 ,charCode:undefined firefox : keyCode:0 ,charCode:97 } ps: 注意不能直接 code 与 字符比较 ,比如过滤某些字符? 不能够? code a ,而应该 char_ a ,code 做为数字和字符串比较,会强制字符串转化为数字进行比较 ,而a ,parse数字以后为 NaN ,则 code a ,code a ,code ==a 都为 false。 IE下keyCode:对于keypress事件,表示按下按键的Unicode字符;对于keydown/keyup 事件,表示按下按键的数字代码。 无charCode属性。 DOM标准下 keyCode:

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档