Ext.getBody()。focus()在IE6中不起作用

时间:2010-01-07 17:56:03

标签: javascript extjs ckeditor focus internet-explorer-6

Ext.getBody().focus()似乎在IE6中无法正常工作。当用户导航到新的ExtJS选项卡时,我需要确保他不能再键入他可能正在键入的CKEditor实例(导航到新选项卡后隐藏)。以下代码适用于FF,但不适用于IE6。

for( var instanceName in CKEDITOR.instances ) {
    CKEDITOR.instances[instanceName].focusManager.forceBlur();  // also 
                                                                // not working 
                                                                // in IE6
}
Ext.getBody().focus();

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

我相信包括IE 6在内的所有主流浏览器都支持document.activeElement属性。如果我理解正确,您需要在用户单击选项卡时从活动表单元素中删除焦点?假设您在单击选项卡时可以访问某种事件,请尝试以下操作:

if(document.activeElement) {
    //Call blur() to remove focus from the active (focused) element
    document.activeElement.blur(); 
}

如果您想禁用该字段的所有输入,您还需要为其提供“已禁用”属性。

答案 1 :(得分:1)

我使用了这种解决方法;我创建了一个零高度和零宽度的输入字段,并将焦点移动到此字段以模糊CKEditor字段/实例。