【发布时间】:2014-06-25 19:02:24
【问题描述】:
在带有 IE8 浏览器模式的 IE10 中,当输入具有焦点时按下退格键或删除键时,输入框和文本会消失。移动鼠标使一切重新出现正常。如果不调用getBoundingClientRect(),它就可以正常工作。怎么回事?
这里是this markup:
HTML:
<input id='input'>
Javascript:
var input = document.getElementById('input');
input.attachEvent("onpropertychange", function(event) {
if (event.propertyName === "value") {
input.getBoundingClientRect();
}
});
【问题讨论】:
-
有意思,好像getBoundingClientRect是在强制重排,但是浏览器忘记重绘了。
-
@Teemu 我拿出了
type='text'来获得一个最小的例子,但这并不影响这里的结果。我假设由于输入有焦点,history.back()的 IE 快捷方式没有应用。 -
@bfavaretto 是的,我同意。如何手动触发重绘?
-
哦,至少在 IE10 中,当按下
backspace时,我会回到我开始的页面。可能跟 JSBin 有关系。 -
要强制重绘,您可以尝试更改元素的一些视觉属性,例如
input.style.width = input.style.width.
标签: javascript html internet-explorer internet-explorer-8