IE11中焦点错误的activeElement

时间:2015-06-19 10:16:31

标签: javascript html angularjs

在IE11中 span 元素处于焦点状态(document.activeElement返回 span ),但它的元素没有tabindex属性,不应该在对焦。

在Chrome和Firefox中正常工作(使用tabindex属性点击焦点div元素后)。这个问题只在IE11中出现。顺便说一句,无法在jsbin上重现这个问题。

example

http://i.stack.imgur.com/2qdmJ.png

我也没有在可以获得焦点的元素列表中看到跨度。

这是一个已知问题吗?单击span后,如何使用tabindex作为activeElement div

http://msdn.microsoft.com/en-us/library/ms536934.aspx

1 个答案:

答案 0 :(得分:3)

最后我发现它是IE11中的意外行为,如果span有display: flex则可能出错。 点击span后,Chrome和Firefox返回div,IE返回span

检查代码段以获取详细信息。报告caniuse可能应该添加到IE跟踪器。

document.getElementById('d').addEventListener('click', function() {
  alert('active element is ' + document.activeElement);
});
#d {
  display: flex;
}
span {
  display: -ms-flex;
  display: flex;
}
<div id='d' tabindex="1">
  <div>
    <span>span</span>
  </div>
</div>