IE问题:在后台

时间:2015-09-03 09:59:28

标签: javascript css internet-explorer overlay overlapping

我们在页面上有div叠加和输入,而在某些操作上我们显示模型窗口(这里是自定义菜单)。

问题:在Internet Explorer中,当我们关注时模型窗口在前景中 在文本输入和问题上,它的光标在模型窗口上闪烁。 请参阅Internet Explorer上附带的小提琴。我已经在IE10和11上测试了它。

HTML:
<button onclick="showDiv()">Show Div</button>
<div>
</div>
<input type="text" />

script:
function showDiv (){
    $('div').show()
    setInterval(function(){
        $('input').focus();
    },200);
}

http://jsfiddle.net/arunthakur14/qobvawr9/

1 个答案:

答案 0 :(得分:1)

此问题似乎已在其他地方记录,并且似乎是IE错误:Cursor/caret bleeding through overlay in IE

但是,这是一个有望满足您需求的修改后的解决方案 - 将此jQuery代码添加到您的页面中,如果覆盖div可见,它将把焦点从输入中移开:

(function () {
    if ( document.documentMode && document.documentMode < 12 ) {
        $( document ).on( "focus", ":input", function ( event ) {
            if ($('div').is(':visible')) {
                event.target.blur();
            };
        });
    }
}());

这里是修改过的JSFiddle的答案:http://jsfiddle.net/qobvawr9/1/