0

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();

有什么建议么?

4

2 回答 2

1

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

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

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

于 2010-01-07T20:54:31.840 回答
1

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

于 2010-01-07T21:52:00.580 回答