- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
感谢Perfection kills ,我们可以使用以下 JavaScript 来检测事件支持:
function hasEvent(ev) {
var elem = document.createElement('a'),
type = 'on' + ev,
supported = elem[type] !== undefined;
if (!supported) {
elem.setAttribute(type, 'return;');
supported = typeof elem[type] === 'function';
}
elem = null;
return supported;
}
这只在我需要它的时候起作用:检测 mouseenter
支持; hasEvent('mouseenter')
将在 Chrome、Firefox 等中返回 false,这是应该的。
但现在我正在尝试“修复”不支持 focusin
和 focusout
事件的浏览器。 According to PPK ,基本上就是 Firefox。不幸的是,Chrome 和 Safari 被列为具有“不完整”支持,原因如下:
Safari and Chrome fire these events only with addEventListener; not with traditional registration.
一般来说,这很好;无论如何,我只会使用 addEventListener
。然而,它确实意味着通过 elem.onfocusin !== undefined
检测支持将不起作用。我测试了一下,确实如此:
<p>Do I support <a href="#">focusin</a>?</p>
<script>
var elem = document.getElementsByTagName('p')[0];
// hasEvent method defined here
function listener() {
var response = hasEvent('focusin') ? 'Yes!' : 'No...';
alert(response);
}
elem.addEventListener('focusin', listener, false);
</script>
上述警告 No...
在 Chrome 中!有什么方法可以在不使用浏览器嗅探的情况下检测浏览器是否支持 focusin
?
最佳答案
focusin 和 focusout 应该在目标元素获得焦点之前触发,事件顺序似乎也有问题
http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
目前,只有 IE 符合规范:
Chrome/Safari:
focus
focusin
DOMFocusIn
blur
focusout
DOMFocusOut
focus
focusin
DOMFocusIn
Opera 12:
focus
DOMFocusIn
focusin
blur
DOMFocusOut
focusout
focus
DOMFocusIn
focusin
IE 8:
focusin
focus
focusout
focusin
blur
focus
Firefox 14:
focus
blur
focus
关于javascript - 如何检测 `focusin` 支持?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7337670/
当我将焦点放在某个元素上时,我希望选中所有文本。 我用过 $('.class-focusin').focusin(function(e) { $(this).select(); }); 但这不
我在做什么 在代码的某些部分,我有一个针对 focusin 事件的监听器,而在另一部分中,我以编程方式将焦点设置在 input 上。在 Chrome、Safari、Firefox 上,事件监听器被调用
我使用的是 JQuery 1.4.1。我有动态创建的 HTML 输入元素。我已将“focusin”事件分配给所有输入元素。加载页面时,仅在聚焦每个输入元素时触发一次。 问题是,当我最小化和最大化页面时
我正在验证表单输入,例如单击按钮时说名字。如果为空,我将类更改为 .ValidateError { border: 3px solid #ff9600; background:
我想在 focusin 上显示一个按钮,单击时执行一些操作或在 focusout 上隐藏该按钮: $(".editableDiv").live('focusin', function(){ /
我是第一次使用 Python 3.4 和 Qt 5。这很简单,我可以理解我需要的大部分功能。但是(总是有“但是”)我不明白如何使用 focusOut/clearFocus/focusIn 事件。 我的
为什么在 following code未调用 focusin 事件处理程序? HTML: Click Here JS: $(function() { $('input').live('fo
我一直在修改 jQuery 事件,并且偶然发现了一个非常有趣的情况(Firefox bug?),我找不到任何解释。我想对某些 HTML 元素使用焦点事件,但似乎有一些限制,例如: 段落、div(可能还
当我点击 内部时下面的标签,alert()单击 alert() 的“确定”按钮后,继续出现以下代码中的内容。 单击“确定”按钮后我需要做什么才能停止警报?我的代码需要脱离输入标记并执行一些其他操作。
据我了解,只要窗口获得焦点,就会触发 X11 FocusIn 事件。它是键盘输入发送到的窗口。我无法触发此事件。我确保在创建窗口时给它 FocusChangeMask。我在我的事件处理程序中创建了一个
感谢Perfection kills ,我们可以使用以下 JavaScript 来检测事件支持: function hasEvent(ev) { var elem = document.cre
我正在创建一个小的 PyQt 应用程序并卡在了鼠标悬停效果中。 我有一个 QMainWindow,它有三个按钮,分别是 createProfileButton、downloadPackagesButt
jQuery 版本:1.4.1 我正在尝试编写一个简单的水印类型插件,并且我想利用实时事件,因为并非所有我需要使用它的元素都会在页面加载期间存在,或者它们可能会从页面中添加和删除DOM。然而,由于某种
我尝试在 focusin 内调用 focusout 事件,因为我想使用 focusin 事件中的先前值,但 focusout 事件执行多次 $('tr #edituser').focusin(func
jQuery 版本:1.10.1 我正在尝试编写一个工具提示,单击列表中的每个图像项时将显示什么。但是,在单击项目之前,工具提示会显示 html 内容,如 鼠标悬停时。请在下面查看我的尝试: $('#
我有一个包含这样一列的数据表 这是我的HTML 78060 Edit View 我想在用户将鼠标悬
我想将类名 active 添加到父类 的this 。无法弄清楚为什么它只针对第一个输入。没有 jQuery。 http://jsfiddle.net/58ddtbm9/ document.queryS
我需要在 JQuery 中使用 focusin 和 focusout 触发器。我将它与 Bootstrap Popovers 一起使用。 目前,由于我认为某些奇怪的原因,它不起作用。 这有什么问题吗?
我在一个类中有一个 focusin 绑定(bind)。我试过 jQuery unbind 方法。似乎不起作用。 这只是一个例子: module TheClas
我的 Binder : $("#wrapper").on("focusin", ".someInputField", function(e, a) { /* do something */ }
我是一名优秀的程序员,十分优秀!