百恒网络
关于javascript中常见的blur、focus、focusin、focusout焦点事件介绍

关于javascript中常见的blur、focus、focusin、focusout焦点事件介绍

2016-12-07 6737

焦点事件会在页面获得或失去焦点时触发。利用这些事件并与 document.hasFocus()方法及 document.activeElement 属性配合,可以知晓用户在页面上的行踪。有以下 6 个焦点事件。

blur:在元素失去焦点时触发。这个事件不会冒泡;所有浏览器都支持它。

DOMFocusIn:在元素获得焦点时触发。这个事件与 HTML 事件 focus 等价,但它冒泡。只有 Opera 支持这个事件。DOM3 级事件废弃了 DOMFocusIn,选择了 focusin。

DOMFocusOut:在元素失去焦点时触发。这个事件是 HTML 事件 blur 的通用版本。只有 Opera 支持这个事件。DOM3 级事件废弃了 DOMFocusOut,选择了 focusout。

focus:在元素获得焦点时触发。这个事件不会冒泡;所有浏览器都支持它。

focusin:在元素获得焦点时触发。这个事件与 HTML 事件 focus 等价,但它冒泡。支持这个事件的浏览器有 IE5.5+、Safari 5.1+、Opera 11.5+和 Chrome。

focusout:在元素失去焦点时触发。这个事件是 HTML 事件 blur 的通用版本。支持这个事件的浏览器有 IE5.5+、Safari 5.1+、Opera 11.5+和 Chrome。

这一类事件中最主要的两个是 focus 和 blur,它们都是 JavaScript 早期就得到所有浏览器支持的事件。这些事件的最大问题是它们不冒泡。因此,IE 的 focusin 和 focusout 与 Opera 的 DOMFocusIn

和 DOMFocusOut 才会发生重叠。IE 的方式最后被 DOM3 级事件采纳为标准方式。

当焦点从页面中的一个元素移动到另一个元素,会依次触发下列事件:

(1) focusout 在失去焦点的元素上触发;

(2) focusin 在获得焦点的元素上触发;

(3) blur 在失去焦点的元素上触发;

(4) DOMFocusOut 在失去焦点的元素上触发;

(5) focus 在获得焦点的元素上触发;

(6) DOMFocusIn 在获得焦点的元素上触发。

其中,blur、DOMFocusOut 和 focusout 的事件目标是失去焦点的元素;而 focus、DOMFocusIn 和 focusin 的事件目标是获得焦点的元素。

要确定浏览器是否支持这些事件,可以使用如下代码:

var isSupported = document.implementation.hasFeature("FocusEvent", "3.0");

本文仅限内部技术人员学习交流,不得作于其他商业用途.希望此文对广技人员有所帮助。原创文章出自:南昌网站建设公司-百恒网络http://www.jxbh.cn/如转载请注明出处!


展开分享
服务
案例
动态
联系
咨询