2010-01-07 35 views
0

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

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

有什么建议吗?

回答

1

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

1

我相信包括IE 6在内的所有主流浏览器都支持document.activeElement属性。如果我理解正确,当用户单击选项卡时,您需要从活动表单元素中移除焦点?如果你想禁用所有输入到你想也给它“已禁用”属性,字段

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

:假设你有机会获得某种单击该选项卡时,事件的,试试这个。

+0

感谢您的回复。这也不起作用 - 也许是因为“当前”焦点位于iFrame中。 – Upperstage 2010-01-07 21:49:42

+0

我相信它仍然可以工作,如果它在iframe中,您只需要知道*它是* document object: 'window.frames ['your_frame']。document.activeElement' – 2010-01-08 19:02:21