`
daimon
  • 浏览: 12772 次
  • 性别: Icon_minigender_1
  • 来自: 陕西。西安
最近访客 更多访客>>
社区版块
存档分类
最新评论

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

阅读更多
 用过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() ;    
    }
}
分享到:
评论
1 楼 ddh9504 2007-10-26  
修改之后对于其他浏览器受不受不影响???

相关推荐

Global site tag (gtag.js) - Google Analytics