fckeditor를 사용하다가
iframe으로 뜬 팝업에서 이미지 추가 버튼을 누르면
이미지 추가 창이 이미 떠있는 팝업의 뒤로 가려져서 사용할 수 없게 되는 경우가 있다.
이럴 때는 이미지 추가 창이 생성되는 iframe의 zindex를 수정해주어야 한다.

fckeditorcode_ie.js
fckeditorcode_gecko.js
를 열면 iframe을 생성하는 부분이 있는데

var FCKDialog=(function(){
var A;
var B;
var C;
var D=window.parent;
while (D.parent&&D.parent!=D){
 try{
   if (D.parent.document.domain!=document.domain) 
    break;
   if (D.parent.document.getElementsByTagName('frameset').length>0)
    break;
 }catch (e){
    break;
};
D=D.parent;
};
var E=D.document;
var F=function(){if (!B)B=FCKConfig.FloatingPanelsZIndex+9999999;return++B;};
var G=function(){
if (!C) return;
var H=FCKTools.IsStrictMode(E)?E.documentElement:E.body;
FCKDomTools.SetElementStyles(C,{'width':Math.max(H.scrollWidth,H.clientWidth,E.scrollWidth||0)-1+'px','height':Math.max(H.scrollHeight,H.clientHeight,E.scrollHeight||0)-1+'px'}
);
};
return {OpenDialog:function(dialogName,dialogTitle,dialogPage,width,height,customValue,resizable){
if (!A) this.DisplayMainCover();
var I={Title:dialogTitle,Page:dialogPage,Editor:window,CustomValue:customValue,TopWindow:D};
FCK.ToolbarSet.CurrentInstance.Selection.Save(true);
var J=FCKTools.GetViewPaneSize(D);
var K={ 'X':0,'Y':0 };
var L=FCKBrowserInfo.IsIE&&(!FCKBrowserInfo.IsIE7||!FCKTools.IsStrictMode(D.document));
if (L) K=FCKTools.GetScrollPosition(D);
var M=Math.max(K.Y+(J.Height-height-20)/2,0);
var N=Math.max(K.X+(J.Width-width-20)/2,0);
var O=E.createElement('iframe');FCKTools.ResetStyles(O);
O.src=FCKConfig.BasePath+'fckdialog.html';
O.frameBorder=0;
O.allowTransparency=true;
FCKDomTools.SetElementStyles(O,{'position':(L)?'absolute':'fixed','top':M+'px','left':N+'px','width':width+'px','height':height+'px','zIndex':F()});
O._DialogArguments=I;
E.body.appendChild(O);
O._ParentDialog=A;A=O;},

OnDialogClose:function(dialogWindow){
var O=dialogWindow.frameElement;
FCKDomTools.RemoveNode(O);
if (O._ParentDialog){A=O._ParentDialog;O._ParentDialog.contentWindow.SetEnabled(true);}
else{if (!FCKBrowserInfo.IsIE) FCK.Focus();
this.HideMainCover();
setTimeout(function(){ A=null;},0);
FCK.ToolbarSet.CurrentInstance.Selection.Release();}},

DisplayMainCover:function(){
C=E.createElement('div');
FCKTools.ResetStyles(C);
FCKDomTools.SetElementStyles(C,{'position':'absolute','zIndex':F(),'top':'0px','left':'0px','backgroundColor':FCKConfig.BackgroundBlockerColor});
FCKDomTools.SetOpacity(C,FCKConfig.BackgroundBlockerOpacity);
if (FCKBrowserInfo.IsIE&&!FCKBrowserInfo.IsIE7){
var Q=E.createElement('iframe');
FCKTools.ResetStyles(Q);
Q.hideFocus=true;
Q.frameBorder=0;
Q.src=FCKTools.GetVoidUrl();
FCKDomTools.SetElementStyles(Q,{'width':'100%','height':'100%','position':'absolute','left':'0px','top':'0px',
'filter':'progid:DXImageTransform.Microsoft.Alpha(opacity=0)'});
C.appendChild(Q);};
FCKTools.AddEventListener(D,'resize',G);
G();
E.body.appendChild(C);
FCKFocusManager.Lock();
var R=FCK.ToolbarSet.CurrentInstance.GetInstanceObject('frameElement');
R._fck_originalTabIndex=R.tabIndex;
R.tabIndex=-1;},

HideMainCover:function(){
FCKDomTools.RemoveNode(C);
FCKFocusManager.Unlock();
var R=FCK.ToolbarSet.CurrentInstance.GetInstanceObject('frameElement');
R.tabIndex=R._fck_originalTabIndex;
FCKDomTools.ClearElementJSProperty(R,'_fck_originalTabIndex');},

GetCover:function(){return C;}
};
})();
원하는 값으로 수정해주면 된다.
(9999999는 이미 수정된 값임.)
Posted by zeide
,