当元素设置为隐藏然后在同一个函数中可见时,焦点在IE中丢失

时间:2018-05-15 09:14:34

标签: javascript internet-explorer dom focus

我们有一段代码将容器元素的可见性设置为hidden,对其子代执行某些操作,然后将可见性设置回visible。它在现代浏览器中运行良好,但在IE中,容器内的输入元素在执行后失去焦点。

为了演示这种情况,我们说:

<div id="container">
  <input id="input"/>
</div>

如果你这样做:

var containerEl = document.getElementById('container');
var inputEl = document.getElementById('input');
inputEl.focus();
containerEl.style.visibility = 'hidden';
containerEl.style.visibility = 'visible';

输入元素是Chrome中的焦点。它在IE中失去了重点。

请参阅This Demo

我在测试时使用的是最新的Chrome66和IE11。

那么,为什么

containerEl.style.visibility = 'hidden';
containerEl.style.visibility = 'visible';

让焦点输入在IE中失去焦点?

0 个答案:

没有答案