2010-01-07 3 views
0

Ext.getBody().focus()이 IE6에서 올바르게 작동하지 않는 것 같습니다. 사용자가 새로운 ExtJS 탭으로 이동할 때, 그가 타이핑했을 수도있는 CKEditor 인스턴스 (새로운 탭으로 이동 한 후 숨김)를 더 이상 입력 할 수 없도록해야합니다. 다음 코드는 FF에서는 작동하지만 IE6에서는 작동하지 않습니다.IE6에서 Ext.getBody(). focus()가 작동하지 않습니다.

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

의견이 있으십니까?

답변

1

이 해결 방법을 사용했습니다. 높이가 0이고 너비가 0 인 입력 필드를 만들고이 필드로 포커스를 이동하여 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

+0

iframe에있는 경우 문서 객체 인 : 'window.frames [ 'your_frame']. document.activeElement'에 도착하면됩니다. –

관련 문제