如何检测浏览器是否支持关注禁用的元素?

时间:2012-12-06 16:19:57

标签: javascript jquery internet-explorer-8 focus feature-detection

  

无法将焦点移动到控件上,因为它是不可见的,未启用的,或者是不接受焦点的类型

jQuery在IE8上抛出了上述错误。

我希望能够检测浏览器是否支持关注已禁用的元素(在我的情况下为input),并将其存储在jQuery.support中。

我该怎么做?

一个普通的JS解决方案没问题,但我不想使用浏览器嗅探(jQuery.browser等)。

使用dispatchEvent()会是一个好方法吗?

1 个答案:

答案 0 :(得分:4)

我想你可以trycatch完全相同(关注一个禁用的元素),并在support中存储一个值,如果有什么事情的话。

var test = $('<input disabled/>');
$(document.body).append(test);
try{
    test.focus();
}catch(e){
    //no support, do your thing
    //...
}
//clean up test element
test.remove();