输入在IE中的iframe内失去焦点

时间:2015-07-28 00:56:24

标签: javascript jquery html internet-explorer iframe

我有一张表,用户可以在其中标记单元格。这是通过在单元格中插入输入标签来完成的(这也允许用户编辑信息)。当用户点击选项卡时,将删除前一个单元格的输入标记,并插入并聚焦下一个单元格的输入标记。

除了IE9和10中的iframe之外,在所有情况下都可以正常工作。出于某种原因,下一个单元格会聚焦一秒,然后失去焦点。当输入标签被模糊时,输入标签被从单元格中移除,因此基本上看起来像标签不起作用并且用户不能编辑下一个单元格的内容。看起来iframe的body标签会在发生这种情况时获得焦点。我无法模糊身体标签,因为这会导致Windows在IE中切换。

我创建了一个非常简单的jsFiddle来显示这种行为 - https://jsfiddle.net/Lpo2s61m/10/

<input type="text" class = "test1" value='test1'/>

$('.test1').bind({
keydown: function(event) {
    if(event.keyCode == 9) {
        event.preventDefault();
    }
},
keyup: function(event) {
    if(event.keyCode == 9) {
        $('<input type="text" class = "test2"/>').insertAfter($('.test1'));
        $('.test2').val('test2');
        bindEvents();
        $('.test1').remove();
        $('.test2').focus();
   }
}
});

因为jsFiddle在iframe中加载html,所以只需在IE中运行它就可以重现。

它类似于这个问题 - Setting Focus to an iFrame in IE - 他们说它会将光标显示一秒然后消失。但是,这些解决方案都不适合我。作为参考,我使用的是jQuery 1.8.3。

我到目前为止唯一的工作是延迟在输入上绑定模糊事件,因此它不会消失。我正在寻找更好的解决方案。任何帮助,将不胜感激。提前谢谢。

0 个答案:

没有答案