今天我在IE11中从DOM中删除密码字段时遇到了一个奇怪的问题。这个小提琴应该有希望表明问题:http://jsfiddle.net/eaxp2Lre/2/
相关部分是我使用以下方法删除密码输入元素的地方:
var passwordField = document.getElementById('password-field'),
div = document.createElement('div');
div.appendChild(passwordField);
div.innerHTML = '';
(我知道这是一种从DOM中删除节点的奇怪方法,但它是我们当前的JS框架在内部执行的方式 - 我可能会覆盖它以使用node.parentNode.removeChild(node)
)
奇怪的是,在将div的innerHTML设置为空字符串时,window.getSelection()
中的选择将填充包含单个textNode的范围,其中包含已输入密码的值的值字段。
还有其他人遇到过这个吗?有这个原因,还是只是一个bug?它是我在一段时间内看到的IE行为最奇怪的例子之一..