ua.js文件focus&blur&keydown事件分析

       actionlog_js_ua.js混淆编程形式与执行主流程

       ua.js中UA_Opt设定信息的重要性与来源分析

       ua.js文件load事件自定义处理函数功能解析

       ua.js中mousedown和mousemove事件自定义函数功能解析

       ua.js文件focus&blur&keydown事件分析

       ua.js中UA生成函数vq4的“庐山真面目”

       ua.js中网络超时检测函数 wql 功能分析

       ua.js中用 image 对象实现页面访问统计

       ua.js中JSocket.getlso和JSocket.setlso代码分析

       ua.js中arguments.callee.caller的应用

       ua.js 获取访客浏览器与操作系统信息的方式

      上一篇文章介绍了mousedown和mousemove事件更新UA的方式,今天讲述ua.js文件focus&blur&keydown事件发生时更新UA的方式。其中focus/blur是同一个函数处理的,函数名为yl,而处理keydown事件的函数名为u4。

       focus与blur事件的处理函数

      这里给出focus和blur事件处理函数yl的代码,有反混淆的注释。

      由以上代码可知focus和blur事件处理时需要的参数,如下表所示。其中的focus和focusin的差异一定又是因为IE。我查了一下,了解到如下知识点,值得记录:

      1. 事件代理简单来说就是将子元素事件绑定在祖先元素上,之所以能够这样做,得益于标准事件模型的捕获和冒泡。这一点对应到ua.js的表现为:在事件绑定处理函数t6k中,mousedown,mousemove,focus,blur,keydown等事件均绑定在window.object上。因此ua.js的事件代理方式应该是事件的捕获。

       2. focus和blur事件支持捕获但不支持冒泡,而IE下的focusin和focusout与focus和blur功能对应,它们支持冒泡,不支持捕获。在函数t6k中区分为IE时绑定事件是focusin和focusout。但是到这里我就糊涂了:IE不支持捕获,可是事件都是绑定在window.obejct上的,它如何能将事件传递到它的子元素中呢?

focus and blur

      keydown事件的处理函数

          keydown事件需要的信息及其处理方式如下表所示。ctrlKey,altKey,shiftKey有单独的标志位,这三个事件可以同时存在。

keydown function

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

Fork me on GitHub