【问题标题】:Input box and text vanish on backspace/delete in IE8输入框和文本在 IE8 中退格/删除时消失
【发布时间】: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


【解决方案1】:

在其他地方提到过IE10 compatibility mode handles onpropertychange wrong。不知道是不是这样,但 FWIW 它在 IE8 vanilla 中对我有用。

【讨论】:

    猜你喜欢
    • 2014-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多