asp.net中
FCKeditor是目前最好的html文本编辑器,如果还不明白的话看了下图就知道了
效果图:
那么为什么说是FCKeditor的冰冷之心呢?这不是哗众取宠,主要是说它使用起来有点麻烦,下文就详细说明如何搞定这玩意儿。
1.FCKeditor的官方网站是:http://www.fckeditor.net/download
目前最新的FCKeditor 2.4.2版本。
请在此页下载:http://sourceforge.net/project/showfiles.php?group_id=75348
如图所示:
要下载FCKeditor2.4.2.zip和 FCKeditor.NET版的2个zip包。
说明:
FCKeditor2.4.2.zip是其最新的Javascript文件和图片什么的;
FCKeditor.NET.zip是ASP.NET调用的DLL在里面。
2.分别解压后把FCKeditor2.4.2.zip里的fckeditor目录整个复制到网站中。
3.解压FCKeditor.NET.zip包后在FCKeditor.Net_2.2/bin/Debug目录里找到FredCK.FCKeditorV2.dll。其他文件没用,把FredCK.FCKeditorV2.dll复制到我们的网站,建立一个Bin目录。
4.引用FredCK.FCKeditorV2.dll。
第一步:
第二步:
5.导入工具箱。
在“工具箱”下右键
点击“选择项”。弹出如图窗口:
点击浏览,找到dll所在目录。
这时发现工具箱里多出FCKeditor控件。
6.拖拽FCKeditor到页面上
7.配置WebConfig
<?xml version="1.0"?>
<!--
注意: 除了手动编辑此文件以外,您还可以使用
Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
“网站”->“Asp.Net 配置”选项。
设置和注释的完整列表在
machine.config.comments 中,该文件通常位于
/Windows/Microsoft.Net/Framework/v2.x/Config 中
-->
<configuration>
<appSettings>
<add key="FCKeditor:BasePath" value="~/fckeditor/"/>
<add key="FCKeditor:UserFilesPath" value="/Files/" />
</appSettings>
<connectionStrings/>
<system.web>
说明:BasePath是fckeditor所在路径,fckeditor由于我们直接放网站目录下这样写就可以,如果您的网站多放几层适当调整即可。
UserFilesPath是所有上传的文件的所在目录。为什么要设置成/Files这样而不是~/Files,因为FCKeditor使用这个值来返回你上传后的文件的相对路径到客户端。否则的话客户访问的时候就会取客户的机器目录而不是http形式的目录。
建议:Files要单独做wwwroot目录下的一个站点比较好,和我们的站点FCKEditor平行。不要把它放FCKEditor里,为什么呢?因为Files是要让客户有写的权限的,如果放FCKEditor下很危险。
8.Files目录要有写的权限。你根据自己网站需求设置那个帐号,本文为方便设置User实际中你可能用ASP.NET帐号更合理。
9.修改fckeditor/fckconfig.js文件
在第182行的位置
var _FileBrowserLanguage = 'asp' ; // asp | aspx | cfm | lasso | perl | php | py
var _QuickUploadLanguage = 'asp' ; // asp | aspx | cfm | lasso | php
改为
var _FileBrowserLanguage = 'aspx' ; // asp | aspx | cfm | lasso | perl | php | py
var _QuickUploadLanguage = 'aspx' ; // asp | aspx | cfm | lasso | php
10.FCKeditor给其瘦身。以_打头的的都是范例文件或源文件,不过建议小心。
11.下面以上传图片示例说明如何使用,
点击“浏览服务器”。
弹出窗口很容易报错
如果报错XML request error: Internal Server Error(500),很可能就是目录路径不对和写权限没有。
选择图像
最后效果
前台代码:
<%@ Page Language="C#" validateRequest=false AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register Assembly="FredCK.FCKeditorV2" Namespace="FredCK.FCKeditorV2" TagPrefix="FCKeditorV2" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>FCKeditor文本编辑器</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<fckeditorv2:fckeditor id="FCKeditor1" runat="server" DefaultLanguage="zh-cn" Height="400px" Width="660px"
></fckeditorv2:fckeditor>
</div>
</form>
</body>
</html>
怎么样获取结果呢?FCKeditor1.Value就是。
web.config中配置
< appSettings >
< add key = " FCKeditor:BasePath " value = " ~/FCKeditor/ " />
< add key = " FCKeditor:UserFilesPath " value = " ~/FCK_upload/ " />
</ appSettings >
</ location >
< location path = " fckeditor " >
< system.web >
< pages theme = "" >
</ pages >
</ system.web >
</ location >
fckconfig.js中配置
FCKConfig.DefaultLanguage = 'zh-cn' ;
FCKConfig.FontNames = '宋体;黑体;隶书;楷体_GB2312;华文行楷;Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;//设置字体列表
var _FileBrowserLanguage = 'aspx' ; // asp | aspx | cfm | lasso | perl | php | py
var _QuickUploadLanguage = 'aspx' ; // asp | aspx | cfm | lasso | perl | php | py
=======================================================================
asp中配置方法
1.修改文件 /Fckeditor/editor/filemanager/connectors/asp/io.asp
Sub SendUploadResults( errorNumber, fileUrl, fileName, customMsg )
Response.Clear
Response.CodePage=65001'新增加的行,防止中文乱码
Response.Charset="UTF-8"'新增加的行,防止中文乱码
Response.Write "<script type=""text/javascript"">"
Response.Write "window.parent.OnUploadCompleted(" & errorNumber & ",""" & Replace( fileUrl, """", "/""" ) & """,""" & Replace( fileName, """", "/""" ) & """,""" & Replace( customMsg , """", "/""" ) & """) ;"
Response.Write "</script>"
Response.End
End Sub
2.修改文件 /Fckeditor/editor/filemanager/connectors/asp/config.asp
ConfigIsEnabled = True '设置允许上传
ConfigUserFilesPath = "/Upload/FCK/" '设置用户上传文件
ConfigAllowedExtensions.Add "File", "asf|bmp|doc|fla|flv|gif|jpeg|jpg|mid|mp3|pdf|png|ppt|rm|rmi|rtf|swf|txt|wma|wmv|xls|xml"
ConfigDeniedExtensions.Add "File", "asp|aspx|asa|asax|java|class|exe|php|pl|dll"
ConfigAllowedExtensions.Add "Image", "bmp|gif|jpeg|jpg|png"
ConfigAllowedExtensions.Add "Media", "asf|bmp|fla|flv|gif|jpeg|jpg|mid|mp3|png|ram|rm|rmi|swf|wma|wmv"
3.编辑区域的主CSS文件是 /Fckeditor/editor/css/fck_editorarea.css
4.整个fckconfig.js
FCKConfig.CustomConfigurationsPath = '' ;//自定义配置文件路径和名称
FCKConfig.EditorAreaCSS = FCKConfig.BasePath + 'css/fck_editorarea.css' ;
FCKConfig.EditorAreaStyles = '' ;//编辑区的样式表文件
FCKConfig.ToolbarComboPreviewCSS = '' ;
FCKConfig.DocType = '' ;
FCKConfig.BaseHref = '' ;//相对链接的基地址
FCKConfig.FullPage = false ;//是否允许编辑整个HTML文件,还是仅允许编辑BODY间的内容
// The following option determines whether the "Show Blocks" feature is enabled or not at startup.
FCKConfig.StartupShowBlocks = false ;
FCKConfig.Debug = false ;
FCKConfig.AllowQueryStringDebug = true ;
FCKConfig.SkinPath = FCKConfig.BasePath + 'skins/silver/' ;//编辑器皮肤 default silver office2003
FCKConfig.PreloadImages = [ FCKConfig.SkinPath + 'images/toolbar.start.gif', FCKConfig.SkinPath + 'images/toolbar.buttonarrow.gif' ] ;
FCKConfig.PluginsPath = FCKConfig.BasePath + 'plugins/' ;
// FCKConfig.Plugins.Add( 'autogrow' ) ;
// FCKConfig.Plugins.Add( 'dragresizetable' );
FCKConfig.AutoGrowMax = 400 ;
// FCKConfig.ProtectedSource.Add( /<%[/s/S]*?%>/g ) ; // ASP style server side code <%...%>
// FCKConfig.ProtectedSource.Add( /</?[/s/S]*?/?>/g ) ; // PHP style server side code
// FCKConfig.ProtectedSource.Add( /(<asp:[^/>]+>[/s|/S]*?<//asp:[^/>]+>)|(<asp:[^/>]+//>)/gi ) ; // ASP.Net style tags <asp:control>
FCKConfig.AutoDetectLanguage = true ;//自动检测语言
FCKConfig.DefaultLanguage = 'zh-cn' ;//设置语言
FCKConfig.ContentLangDirection = 'ltr' ;//默认文字方向
FCKConfig.ProcessHTMLEntities = true ;
FCKConfig.IncludeLatinEntities = true ;
FCKConfig.IncludeGreekEntities = true ;
FCKConfig.ProcessNumericEntities = false ;
FCKConfig.AdditionalNumericEntities = '' ; // Single Quote: "'"
FCKConfig.FillEmptyBlocks = true ;//使用这个功能,可以将空的块级元素用空格来替代
FCKConfig.FormatSource = true ;//在切换到代码视图时是否自动格式化代码
FCKConfig.FormatOutput = true ;
FCKConfig.FormatIndentator = ' ' ;
FCKConfig.StartupFocus = false ;//开启时FOCUS到编辑器
FCKConfig.ForcePasteAsPlainText = false ;//强制粘贴为纯文本
FCKConfig.AutoDetectPasteFromWord = true ; // IE only.
FCKConfig.ShowDropDialog = true ;
FCKConfig.ForceSimpleAmpersand = false ;//是否不把&符号转换为XML实体
FCKConfig.TabSpaces = 1 ;//在编辑器中是否可以是否TAB键 0 不可用 1 为可用
FCKConfig.ShowBorders = true ;//合并边框
FCKConfig.SourcePopup = false ;
FCKConfig.ToolbarStartExpanded = true ;
FCKConfig.ToolbarCanCollapse = true ;//是否允许展开/折叠工具栏
FCKConfig.IgnoreEmptyParagraphValue = true ;
FCKConfig.PreserveSessionOnFileBrowser = false ;
FCKConfig.FloatingPanelsZIndex = 10000 ;
FCKConfig.HtmlEncodeOutput = false ;
FCKConfig.TemplateReplaceAll = true ;
FCKConfig.TemplateReplaceCheckbox = true ;
FCKConfig.ToolbarLocation = 'In' ;
FCKConfig.ToolbarSets["Default"] = [
['Source','DocProps','-','Save','NewPage','Preview','-','Templates'],
['Cut','Copy','Paste','PasteText','PasteWord','-','Print','SpellCheck'],
['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton','HiddenField'],
'/',
['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],
['OrderedList','UnorderedList','-','Outdent','Indent','Blockquote'],
['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
['Link','Unlink','Anchor'],
['Image','Flash','Table','Rule','Smiley','SpecialChar','PageBreak'],
'/',
['Style','FontFormat','FontName','FontSize'],
['TextColor','BGColor'],
['FitWindow','ShowBlocks']// No comma for the last row.
] ;
FCKConfig.ToolbarSets["Redgull"] = [
['Source','-','Preview','ShowBlocks','FitWindow','-','Templates'],
['Cut','Copy','Paste','PasteText','PasteWord','Undo','Redo'],
['Find','Replace','-','SelectAll','RemoveFormat'],'/',
['TextColor','BGColor','-','Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],
['OrderedList','UnorderedList','-','Outdent','Indent','-','JustifyLeft','JustifyCenter','JustifyRight','Link','Unlink'],'/',
['Style','FontFormat','FontName','FontSize'],'/',
['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton','HiddenField','-','Image','Flash','Table','Rule','Smiley','SpecialChar']
] ;
FCKConfig.ToolbarSets["Basic"] = [['Bold','Italic','-','OrderedList','UnorderedList','-','Link','Unlink']];
FCKConfig.EnterMode = 'p' ; // p | div | br | 回车键入代码
FCKConfig.ShiftEnterMode = 'br' ; // p | div | br | Shift加回车键入代码
FCKConfig.Keystrokes = [
[ CTRL + 65 /*A*/, true ],
[ CTRL + 67 /*C*/, true ],
[ CTRL + 70 /*F*/, true ],
[ CTRL + 83 /*S*/, true ],
[ CTRL + 88 /*X*/, true ],
[ CTRL + 86 /*V*/, 'Paste' ],
[ SHIFT + 45 /*INS*/, 'Paste' ],
[ CTRL + 88 /*X*/, 'Cut' ],
[ SHIFT + 46 /*DEL*/, 'Cut' ],
[ CTRL + 90 /*Z*/, 'Undo' ],
[ CTRL + 89 /*Y*/, 'Redo' ],
[ CTRL + SHIFT + 90 /*Z*/, 'Redo' ],
[ CTRL + 76 /*L*/, 'Link' ],
[ CTRL + 66 /*B*/, 'Bold' ],
[ CTRL + 73 /*I*/, 'Italic' ],
[ CTRL + 85 /*U*/, 'Underline' ],
[ CTRL + SHIFT + 83 /*S*/, 'Save' ],
[ CTRL + ALT + 13 /*ENTER*/, 'FitWindow' ],
[ CTRL + 9 /*TAB*/, 'Source' ]
] ;
//右键菜单的内容
FCKConfig.ContextMenu = ['Generic','Link','Anchor','Image','Flash','Select','Textarea','Checkbox','Radio','TextField','HiddenField','ImageButton','Button','BulletedList','NumberedList','Table','Form'] ;
FCKConfig.BrowserContextMenuOnCtrl = false ;
FCKConfig.EnableMoreFontColors = true ;
FCKConfig.FontColors = '000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,808080,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF' ;
FCKConfig.FontFormats = 'p;h1;h2;h3;h4;h5;h6;pre;address;div' ;
FCKConfig.FontNames = '宋体;黑体;隶书;楷体_GB2312;华文行楷;Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;//设置字体列表
FCKConfig.FontSizes = '12px;14px;smaller;larger;xx-small;x-small;small;medium;large;x-large;xx-large' ;
FCKConfig.StylesXmlPath = FCKConfig.EditorPath + 'fckstyles.xml' ;
FCKConfig.TemplatesXmlPath = FCKConfig.EditorPath + 'fcktemplates.xml' ;
FCKConfig.SpellChecker = 'ieSpell' ; // 'ieSpell' | 'SpellerPages'
FCKConfig.IeSpellDownloadUrl = 'http://www.iespell.com/download.php' ;
FCKConfig.SpellerPagesServerScript = 'server-scripts/spellchecker.php' ; // Available extension: .php .cfm .pl
FCKConfig.FirefoxSpellChecker = false ;
FCKConfig.MaxUndoLevels = 15 ;
FCKConfig.DisableObjectResizing = false ;
FCKConfig.DisableFFTableHandles = true ;
FCKConfig.LinkDlgHideTarget = false ;
FCKConfig.LinkDlgHideAdvanced = false ;
FCKConfig.ImageDlgHideLink = false ;
FCKConfig.ImageDlgHideAdvanced = false ;
FCKConfig.FlashDlgHideAdvanced = false ;
FCKConfig.ProtectedTags = '' ;
// This will be applied to the body element of the editor
FCKConfig.BodyId = '' ;
FCKConfig.BodyClass = '' ;
FCKConfig.DefaultStyleLabel = '' ;
FCKConfig.DefaultFontFormatLabel = '' ;
FCKConfig.DefaultFontLabel = '' ;
FCKConfig.DefaultFontSizeLabel = '' ;
FCKConfig.DefaultLinkTarget = '' ;
// The option switches between trying to keep the html structure or do the changes so the content looks like it was in Word
FCKConfig.CleanWordKeepsStructure = false ;
// Only inline elements are valid.
FCKConfig.RemoveFormatTags = 'b,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var' ;
FCKConfig.CustomStyles =
{
'Red Title' : { Element : 'h3', Styles : { 'color' : 'Red' } }
};
// Do not add, rename or remove styles here. Only apply definition changes.
FCKConfig.CoreStyles =
{
// Basic Inline Styles.
'Bold' : { Element : 'b', Overrides : 'strong' },
'Italic' : { Element : 'i', Overrides : 'em' },
'Underline' : { Element : 'u' },
'StrikeThrough' : { Element : 'strike' },
'Subscript' : { Element : 'sub' },
'Superscript' : { Element : 'sup' },
// Basic Block Styles (Font Format Combo).
'p' : { Element : 'p' },
'div' : { Element : 'div' },
'pre' : { Element : 'pre' },
'address' : { Element : 'address' },
'h1' : { Element : 'h1' },
'h2' : { Element : 'h2' },
'h3' : { Element : 'h3' },
'h4' : { Element : 'h4' },
'h5' : { Element : 'h5' },
'h6' : { Element : 'h6' },
// Other formatting features.
'FontFace' :
{
Element : 'span',
Styles : { 'font-family' : '#("Font")' },
Overrides : [ { Element : 'font', Attributes : { 'face' : null } } ]
},
'Size' :
{
Element : 'span',
Styles : { 'font-size' : '#("Size","fontSize")' },
Overrides : [ { Element : 'font', Attributes : { 'size' : null } } ]
},
'Color' :
{
Element : 'span',
Styles : { 'color' : '#("Color","color")' },
Overrides : [ { Element : 'font', Attributes : { 'color' : null } } ]
},
'BackColor' : { Element : 'span', Styles : { 'background-color' : '#("Color","color")' } }
};
// The distance of an indentation step.
FCKConfig.IndentLength = 40 ;
FCKConfig.IndentUnit = 'px' ;
// Alternatively, FCKeditor allows the use of CSS classes for block indentation.
// This overrides the IndentLength/IndentUnit settings.
FCKConfig.IndentClasses = [] ;
// [ Left, Center, Right, Justified ]
FCKConfig.JustifyClasses = [] ;
// The following value defines which File Browser connector and Quick Upload
// "uploader" to use. It is valid for the default implementaion and it is here
// just to make this configuration file cleaner.
// It is not possible to change this value using an external file or even
// inline when creating the editor instance. In that cases you must set the
// values of LinkBrowserURL, ImageBrowserURL and so on.
// Custom implementations should just ignore it.
var _FileBrowserLanguage = 'asp' ; // asp | aspx | cfm | lasso | perl | php | py | 使用什么写什么
var _QuickUploadLanguage = 'asp' ; // asp | aspx | cfm | lasso | perl | php | py | 使用什么写什么
// Don't care about the following two lines. It just calculates the correct connector
// extension to use for the default File Browser (Perl uses "cgi").
var _FileBrowserExtension = _FileBrowserLanguage == 'perl' ? 'cgi' : _FileBrowserLanguage ;
var _QuickUploadExtension = _QuickUploadLanguage == 'perl' ? 'cgi' : _QuickUploadLanguage ;
FCKConfig.LinkBrowser = false ;//是否允许在插入链接时浏览服务器
//插入链接时浏览服务器的URL
FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Connector=../../connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ;
FCKConfig.LinkBrowserWindowWidth = FCKConfig.ScreenWidth * 0.7 ; // 70% 链接目标浏览器窗口宽度
FCKConfig.LinkBrowserWindowHeight = FCKConfig.ScreenHeight * 0.7 ; // 70% 链接目标浏览器窗口高度
FCKConfig.ImageBrowser = true ;//是否允许浏览服务器功能
//浏览服务器时运行的URL
FCKConfig.ImageBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Image&Connector=../../connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ;
FCKConfig.ImageBrowserWindowWidth = FCKConfig.ScreenWidth * 0.7 ; // 70% 图像浏览器窗口宽度;
FCKConfig.ImageBrowserWindowHeight = FCKConfig.ScreenHeight * 0.7 ; // 70% 图像浏览器窗口高度;
FCKConfig.FlashBrowser = true ;
FCKConfig.FlashBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Flash&Connector=../../connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ;
FCKConfig.FlashBrowserWindowWidth = FCKConfig.ScreenWidth * 0.7 ; //70% ;
FCKConfig.FlashBrowserWindowHeight = FCKConfig.ScreenHeight * 0.7 ; //70% ;
FCKConfig.LinkUpload = true ;
FCKConfig.LinkUploadURL = FCKConfig.BasePath + 'filemanager/connectors/' + _QuickUploadLanguage + '/upload.' + _QuickUploadExtension ;
//允许上传文件的扩展名
FCKConfig.LinkUploadAllowedExtensions = ".(asf|bmp|doc|fla|flv|gif|jpeg|jpg|mid|mp3|png|ppt|ram|rtf|swf|txt|wma|wmv)$" ;// empty for all
//禁止上传的文件扩展名
FCKConfig.LinkUploadDeniedExtensions = "" ; // empty for no one
FCKConfig.ImageUpload = true ;
FCKConfig.ImageUploadURL = FCKConfig.BasePath + 'filemanager/connectors/' + _QuickUploadLanguage + '/upload.' + _QuickUploadExtension + '?Type=Image' ;
FCKConfig.ImageUploadAllowedExtensions = ".(jpg|gif|jpeg|png|bmp)$" ; // empty for all
FCKConfig.ImageUploadDeniedExtensions = "" ; // empty for no one
FCKConfig.FlashUpload = true ;
FCKConfig.FlashUploadURL = FCKConfig.BasePath + 'filemanager/connectors/' + _QuickUploadLanguage + '/upload.' + _QuickUploadExtension + '?Type=Flash' ;
FCKConfig.FlashUploadAllowedExtensions = ".(swf|flv)$" ; // empty for all
FCKConfig.FlashUploadDeniedExtensions = "" ; // empty for no one
FCKConfig.SmileyPath = FCKConfig.BasePath + 'images/smiley/msn/' ;
FCKConfig.SmileyImages = ['regular_smile.gif','sad_smile.gif','wink_smile.gif','teeth_smile.gif','confused_smile.gif','tounge_smile.gif','embaressed_smile.gif','omg_smile.gif','whatchutalkingabout_smile.gif','angry_smile.gif','angel_smile.gif','shades_smile.gif','devil_smile.gif','cry_smile.gif','lightbulb.gif','thumbs_down.gif','thumbs_up.gif','heart.gif','broken_heart.gif','kiss.gif','envelope.gif'] ;
FCKConfig.SmileyColumns = 8 ;
FCKConfig.SmileyWindowWidth = 320 ;
FCKConfig.SmileyWindowHeight = 240 ;
用过FckEditor的朋友都知道,它的选择图片对话框中“浏览服务器”按钮。点击该按钮可以浏览以前已经上传过的文件。不过这个按钮点击后弹出的对话框在MAXTHON浏览器下是以标签形式打开的,这样模态对话框就始终显示在了浏览文件窗口之前,要想选择文件得先关掉模态对话框。先前有朋友提出把弹出模态对话框的功能改为ShowModlessDialog,这个终究不是解决之道,现将我的解决方法写下来与大家分享:
思路就是基于IE内核的浏览器采用模态对话框弹出浏览服务器窗口,其他的仍然window.open不变
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
{
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() ;
}
}
========================================================================
I fixed it by adding the resource type " File " in the config . I think this is a workaround , but it worked for me .
So the link browser url looks somewhat like this ( added Type = File& ) :
FCKConfig . LinkBrowserURL = FCKConfig . BasePath + 'filemanager / browser / default / browser . html? Type = File&Connector =../../../../ connector . ' + _FileBrowserExtension ;
And the quick upload looks like this ( added + '? Type = File' ) :
FCKConfig . LinkUploadURL = FCKConfig . BasePath + ' ../ upload . ' + _QuickUploadExtension + '? Type = File' ;
{
//string sFilePath = System.IO.Path.Combine( sServerDir, sFileName );
//{
// iCounter++;
// sFileName =
// System.IO.Path.GetFileNameWithoutExtension( oFile.FileName ) +
// "(" + iCounter + ")." +
// sExtension;
//}
//else
//{
// oFile.SaveAs( sFilePath );
// break;
//}
//实现上传重命名
sFileName = DateTime.Now.ToString().Replace("-", "").Replace(" ", "").Replace(":", "") + System.IO.Path.GetExtension(oFile.FileName);
string sFilePath = System.IO.Path.Combine(sServerDir, sFileName);
oFile.SaveAs(sFilePath);
break;
}
=======================================================================
这里介绍一个FCK的插件,多媒体插件,支持Windows Media,Real,QuickTime,Flash,Shockwave,完全可以替换FCK自带的flash插入功能。
插件的具体使用方法如下:
1、解压文件到 FCKeditor/editor/plugins
2、修改配置文件 FCKeditor/fckconfig.js ,包括启用插件和添加按钮。
FCKConfig.PluginsPath = FCKConfig.BasePath + 'plugins/' ; //找到这一句,配置插件路径
FCKConfig.Plugins.Add( 'Media', 'en,zh,zh-cn' ) ; //启用插件
………… //中间代码省略
FCKConfig.ToolbarSets["Default"] = [
['Source','Templates'],
['FontName','FontSize'],
['TextColor','BGColor'],
['Image','Flash'], //可以用Media替换Flash
['Table','Rule'],
['FitWindow','ShowBlocks'],
['Smiley','SpecialChar','Media'], //或者加入Media按钮
'/',
['PasteText','PasteWord','RemoveFormat'],
['Undo','Redo','Find','Replace'],
['Bold','Italic','Underline','StrikeThrough'],
['OrderedList','UnorderedList','-','Outdent','Indent','Blockquote'],
['JustifyLeft','JustifyCenter','JustifyRight'],
['Anchor','Link','Unlink'] //我的按钮的配置,可能和你的不太一样
] ;
找到类似代码添加如下内容
FCKConfig.MediaUpload = true ;
FCKConfig.MediaUploadURL = FCKConfig.BasePath + 'filemanager/upload/' + _QuickUploadLanguage + '/upload.' + _QuickUploadLanguage + '?Type=Image' ;
FCKConfig.MediaUploadAllowedExtensions = ".(avi|asf)$" ; // empty for all
FCKConfig.MediaUploadDeniedExtensions = "" ; // empty for no one