用过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 {
//这里是修改部分<br />
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() ;
}
}

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注