对FckEditor编辑器在MAXTHON浏览器下选择服务器文件对话框显示不正常的改进对FckEditor编辑器在MAXTHON浏览器下选择服务器文件对话框显示不正常的改进

阎烨
2023-12-01
用过FckEditor的朋友都知道,它的选择图片对话框中“浏览服 务器”按钮。点击该按钮可以浏览以前已经上传过的文件。不过这个按钮点击后弹出的对话框在MAXTHON浏览器下是以标签形式打开的,这样模态对话框就始 终显示在了浏览文件窗口之前,要想选择文件得先关掉模态对话框。先前有朋友提出把弹出模态对话框的功能改为ShowModlessDialog,这个终究 不是解决之道,现将我的解决方法写下来与大家分享:
思路就是基于IE内核的浏览器采用模态对话框弹出浏览服务器窗口,其他的仍然window.open不变1:修改/fckeditor/editor/dialog/common/fck_dialog_common.js
 1  function  OpenFileBrowser( url, width, height )
 2  {
 3       //  oEditor must be defined.
 4 
 5       var  iLeft  =  ( oEditor.FCKConfig.ScreenWidth   -  width )  /   2  ;
 6       var  iTop   =  ( oEditor.FCKConfig.ScreenHeight  -  height )  /   2  ;
 7 
 8       var  sOptions  =   " toolbar=no,status=no,resizable=no,dependent=yes,scrollbars=yes "  ;
 9      sOptions  +=   " ,width= "   +  width ;
10      sOptions  +=   " ,height= "   +  height ;
11      sOptions  +=   " ,left= "   +  iLeft ;
12      sOptions  +=   " ,top= "   +  iTop ;
13 
14       //  The "PreserveSessionOnFileBrowser" because the above code could be
15       //  blocked by popup blockers.
16       if  ( oEditor.FCKConfig.PreserveSessionOnFileBrowser  &&  oEditor.FCKBrowserInfo.IsIE )
17      {
18           //  The following change has been made otherwise IE will open the file
19           //  browser on a different server session (on some cases):
20           //  http://support.microsoft.com/default.aspx?scid=kb;en-us;831678
21           //  by Simone Chiaretta.
22           var  oWindow  =  oEditor.window.open( url, 'FCKBrowseWindow', sOptions ) ;
23 
24           if  ( oWindow )
25          {
26               //  Detect Yahoo popup blocker.
27               try
28              {
29                   var  sTest  =  oWindow.name ;  //  Yahoo returns "something", but we can't access it, so detect that and avoid strange errors for the user.
30                  oWindow.opener  =  window ;
31              }
32               catch (e)
33              {
34                  alert( oEditor.FCKLang.BrowseServerBlocked ) ;
35              }
36          }
37           else
38              alert( oEditor.FCKLang.BrowseServerBlocked ) ;
39      }
40       else
41      {    
            //这里是修改部分
42           if (oEditor.FCKBrowserInfo.IsIE)
43          {
44              window.showModalDialog(url + " &rdm= " + new  Date(),window, " status:false;dialogWidth: " + width + " px;dialogHeight: " + height + " px/ "" );
45          }
46          else
47          {
48              window.open( url, 'FCKBrowseWindow', sOptions ) ;
49          }
50      }
51  }

2:修改/fckeditor/editor/filemanager/browser/default/frmresourceslist.html
function  OpenFile( fileUrl )
{
    
if ( window.dialogArguments)
    {
        window.dialogArguments.SetUrl( fileUrl ) ;
        window.close() ;
        window.dialogArguments.focus() ;
    }
    
else
    {    
        window.top.opener.SetUrl( fileUrl ) ;
        window.top.close() ;
        window.top.opener.focus() ;    
    }
}


这样就没有问题了。 
 类似资料: