代码
-
-
-
-
-
-
-
-
-
-
-
-
-
var
FCKeditor =
function
( instanceName, width, height, toolbarSet, value )
-
{
-
-
-
this
.InstanceName = instanceName ;
-
this
.Width = width ||
'100%'
;
-
this
.Height = height ||
'200'
;
-
this
.ToolbarSet = toolbarSet ||
'Default'
;
-
this
.Value = value ||
''
;
-
-
this
.BasePath = FCKeditor.BasePath ;
-
this
.CheckBrowser =
true
;
-
this
.DisplayErrors =
true
;
-
this
.Config =
new
Object() ;
-
-
this
.OnError =
null
;
-
}
-
FCKeditor.BasePath =
'/fckeditor/'
;
-
FCKeditor.MinHeight = 200 ;
-
FCKeditor.MinWidth = 750 ;
-
FCKeditor.prototype.Version =
'2.6.5'
;
-
FCKeditor.prototype.VersionBuild =
'23959'
;
-
-
-
-
FCKeditor.prototype.Create =
function
()
-
{
-
-
document.write(
this
.CreateHtml() ) ;
-
}
-
-
-
-
FCKeditor.prototype.CreateHtml =
function
()
-
{
-
-
if
( !
this
.InstanceName ||
this
.InstanceName.length == 0 )
-
{
-
this
._ThrowError( 701,
'You must specify an instance name.'
) ;
-
return
''
;
-
}
-
-
var
sHtml =
''
;
-
-
-
-
-
if
( !
this
.CheckBrowser ||
this
._IsCompatibleBrowser() )
-
{
-
-
sHtml +=
'<input type="hidden" id="'
+
this
.InstanceName +
'" name="'
+
this
.InstanceName +
'" value="'
+
this
._HTMLEncode(
this
.Value ) +
'" style="display:none" mce_style="display:none" />'
;
-
-
sHtml +=
this
._GetConfigHtml() ;
-
-
sHtml +=
this
._GetIFrameHtml() ;
-
}
-
-
-
-
-
else
-
{
-
var
sWidth =
this
.Width.toString().indexOf(
'%'
) > 0 ?
this
.Width :
this
.Width +
'px'
;
-
var
sHeight =
this
.Height.toString().indexOf(
'%'
) > 0 ?
this
.Height :
this
.Height +
'px'
;
-
sHtml +=
'<textarea name="'
+
this
.InstanceName +
-
'" rows="4" cols="40" style="width:'
+ sWidth +
-
';height:'
+ sHeight ;
-
if
(
this
.TabIndex )
-
sHtml +=
'" tabindex="'
+
this
.TabIndex ;
-
sHtml +=
'">'
+
-
this
._HTMLEncode(
this
.Value ) +
-
'<\/textarea>'
;
-
}
-
return
sHtml ;
-
}
-
-
-
-
-
FCKeditor.prototype.ReplaceTextarea =
function
()
-
{
-
-
if
( document.getElementById(
this
.InstanceName +
'___Frame'
) )
-
return
;
-
-
if
( !
this
.CheckBrowser ||
this
._IsCompatibleBrowser() )
-
{
-
-
-
var
oTextarea = document.getElementById(
this
.InstanceName ) ;
-
-
var
colElementsByName = document.getElementsByName(
this
.InstanceName ) ;
-
var
i = 0;
-
-
-
-
-
while
( oTextarea || i == 0 )
-
{
-
-
if
( oTextarea && oTextarea.tagName.toLowerCase() ==
'textarea'
)
-
break
;
-
oTextarea = colElementsByName[i++] ;
-
}
-
-
if
( !oTextarea )
-
{
-
alert(
'Error: The TEXTAREA with id or name set to "'
+
this
.InstanceName +
'" was not found'
) ;
-
return
;
-
}
-
-
-
-
oTextarea.style.display =
'none'
;
-
-
if
( oTextarea.tabIndex )
-
this
.TabIndex = oTextarea.tabIndex ;
-
this
._InsertHtmlBefore(
this
._GetConfigHtml(), oTextarea ) ;
-
this
._InsertHtmlBefore(
this
._GetIFrameHtml(), oTextarea ) ;
-
}
-
}
-
-
-
-
-
-
-
-
-
-
-
-
FCKeditor.prototype._InsertHtmlBefore =
function
( html, element )
-
{
-
if
( element.insertAdjacentHTML )
-
element.insertAdjacentHTML(
'beforeBegin'
, html ) ;
-
else
-
{
-
-
var
oRange = document.createRange() ;
-
oRange.setStartBefore( element ) ;
-
var
oFragment = oRange.createContextualFragment( html );
-
element.parentNode.insertBefore( oFragment, element ) ;
-
}
-
}
-
-
-
-
-
-
-
-
-
-
-
-
FCKeditor.prototype._GetConfigHtml =
function
()
-
{
-
var
sConfig =
''
;
-
for
(
var
o
in
this
.Config )
-
{
-
if
( sConfig.length > 0 ) sConfig +=
'&'
;
-
-
sConfig += encodeURIComponent( o ) +
'='
+ encodeURIComponent(
this
.Config[o] ) ;
-
}
-
return
'<input type="hidden" id="'
+
this
.InstanceName +
'___Config" value="'
+ sConfig +
'" style="display:none" mce_style="display:none" />'
;
-
}
-
-
-
-
-
-
-
FCKeditor.prototype._GetIFrameHtml =
function
()
-
{
-
var
sFile =
'fckeditor.html'
;
-
-
try
-
{
-
if
( (/fcksource=
true
/i).test( window.top.location.search ) )
-
sFile =
'fckeditor.original.html'
;
-
}
-
catch
(e) {
}
-
-
-
-
-
-
-
var
sLink =
this
.BasePath +
'editor/'
+ sFile +
'?InstanceName='
+ encodeURIComponent(
this
.InstanceName ) ;
-
if
(
this
.ToolbarSet)
-
sLink +=
'&Toolbar='
+
this
.ToolbarSet ;
-
-
var
html =
'<iframe id="'
+
this
.InstanceName +
-
'___Frame" src="'
+ sLink +
-
'" mce_src="'
+ sLink +
-
'" width="'
+
this
.Width +
-
'" height="'
+
this
.Height ;
-
-
if
(
this
.TabIndex )
-
html +=
'" tabindex="'
+
this
.TabIndex ;
-
html +=
'" frameborder="0" scrolling="no"></iframe>'
;
-
return
html ;
-
}
-
-
-
-
-
-
-
-
FCKeditor.prototype._IsCompatibleBrowser =
function
()
-
{
-
return
FCKeditor_IsCompatibleBrowser() ;
-
}
-
-
-
-
-
-
-
-
-
FCKeditor.prototype._ThrowError =
function
( errorNumber, errorDescription )
-
{
-
this
.ErrorNumber = errorNumber ;
-
this
.ErrorDescription = errorDescription ;
-
-
if
(
this
.DisplayErrors )
-
{
-
document.write(
'<div style="COLOR: #ff0000" mce_style="COLOR: #ff0000">'
) ;
-
document.write(
'[ FCKeditor Error '
+
this
.ErrorNumber +
': '
+
this
.ErrorDescription +
' ]'
) ;
-
document.write(
'</div>'
) ;
-
}
-
-
if
(
typeof
(
this
.OnError ) ==
'function'
)
-
this
.OnError(
this
, errorNumber, errorDescription ) ;
-
}
-
-
-
-
-
-
-
-
FCKeditor.prototype._HTMLEncode =
function
( text )
-
{
-
if
(
typeof
( text ) !=
"string"
)
-
text = text.toString() ;
-
-
text = text.replace(
-
/&/g,
"&"
).replace(
-
/
"/g, "
""
).replace(
-
/</g,
"<"
).replace(
-
/>/g,
">"
) ;
-
return
text ;
-
}
-
-
-
-
;(
function
()
-
{
-
-
var
textareaToEditor =
function
( textarea )
-
{
-
var
editor =
new
FCKeditor( textarea.name ) ;
-
editor.Width = Math.max( textarea.offsetWidth, FCKeditor.MinWidth ) ;
-
editor.Height = Math.max( textarea.offsetHeight, FCKeditor.MinHeight ) ;
-
return
editor ;
-
}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
FCKeditor.ReplaceAllTextareas =
function
()
-
{
-
-
var
textareas = document.getElementsByTagName(
'textarea'
) ;
-
-
for
(
var
i = 0 ; i < textareas.length ; i++ )
-
{
-
var
editor =
null
;
-
var
textarea = textareas[i] ;
-
var
name = textarea.name ;
-
-
if
( !name || name.length == 0 )
-
continue
;
-
if
(
typeof
arguments[0] ==
'string'
)
-
{
-
-
-
var
classRegex =
new
RegExp(
'(?:^| )'
+ arguments[0] +
'(?:$| )'
) ;
-
if
( !classRegex.test( textarea.className ) )
-
continue
;
-
}
-
else
if
(
typeof
arguments[0] ==
'function'
)
-
{
-
-
-
editor = textareaToEditor( textarea ) ;
-
if
( arguments[0]( textarea, editor ) ===
false
)
-
continue
;
-
}
-
if
( !editor )
-
editor = textareaToEditor( textarea ) ;
-
editor.ReplaceTextarea() ;
-
}
-
}
-
})() ;
-
-
-
-
-
-
-
-
-
-
-
-
-
function
FCKeditor_IsCompatibleBrowser()
-
{
-
var
sAgent = navigator.userAgent.toLowerCase() ;
-
-
-
-
if
(
false
&& sAgent.indexOf(
"mac"
) == -1 )
-
{
-
var
sBrowserVersion = navigator.appVersion.match(/MSIE (.\..)/)[1] ;
-
return
( sBrowserVersion >= 5.5 ) ;
-
}
-
-
-
-
if
( navigator.product ==
"Gecko"
&& navigator.productSub >= 20030210 && !(
typeof
(opera) ==
'object'
&& opera.postError ) )
-
return
true
;
-
-
if
( window.opera && window.opera.version && parseFloat( window.opera.version() ) >= 9.5 )
-
color: #7f0055
分享到:
相关推荐
通过阅读fckeditor.js的中文注释,开发者不仅可以了解FCKeditor的内部工作机制,还能学习到JavaScript编程、DOM操作以及事件处理等多方面的知识。这对于我们理解和自定义FCKeditor,甚至开发自己的富文本编辑器都...
### FckEditor V2.6 fckconfig.js详细中文注释 #### 1. `FCKConfig.CustomConfigurationsPath=''` // 自定义配置路径 这一行设置了FCKEditor的自定义配置文件路径,默认为空字符串。如果需要加载额外的配置文件,...
### FckEditor V2.6 fckconfig.js 配置详解 #### 1. `FCKConfig.CustomConfigurationsPath = '' ;` - **说明:** 此配置项用于指定自定义配置文件的路径和名称。 - **作用:** 通过这一配置,用户可以指定额外的...
以上就是关于“FCKeditor获取选中内容的JS”的详细解析。理解并掌握这些知识点,可以让你在使用FCKeditor时更加游刃有余,无论是开发还是维护,都能提高工作效率。同时,记住在编写代码时加入清晰的注释,以便于他人...
<script type="text/javascript" src="/fckeditor/fckeditor.js"> <script type="text/javascript"> var oFCKeditor = new FCKeditor( 'FCKeditor1' ) ; oFCKeditor.Create() ; ``` 这里 `FCKeditor1` 是编辑器的...
其次,通过预处理步骤,如移除代码注释和无用空格,以及合并脚本文件,FckEditor的脚本大小可以被压缩到原来的一半,显著提高了加载速度。 为了打包和压缩FckEditor的JS脚本,用户可以使用自带的打包程序——...
1. **预处理**:为了减小文件大小,FCKeditor的JS脚本会去除注释和空格,然后合并到一起。 2. **打包程序**:位于`_PACKAGER`文件夹的`Fckeditor.Packager.exe`,是.NET程序,需要.NET Framework支持。运行程序可以...
为了优化性能,FCKEditor的JS脚本会在打包新版本时进行预处理,包括移除注释、删除无用空白字符和合并脚本文件,这样可以将文件大小压缩至原大小的一半。预处理后的代码保存在_Source文件夹中。用户可以通过编辑器...
<script type="text/javascript" src="/fckeditor/fckeditor.js"> ``` 2. **创建编辑器**:在页面的`FORM`标签内通过JavaScript代码创建编辑器实例。 ```javascript var oFCKeditor = new FCKeditor('FCKeditor1...
3. **脚本压缩**:为了进一步提升性能,FCKEditor在打包新版本时会对JS脚本进行预处理,包括去除注释和空格,合并文件,从而显著减少文件大小,通常可以压缩至原始大小的50%。预处理后的代码存放在 "_Source" 文件夹...
<script type="text/javascript" src="/fckeditor/fckeditor.js"> ``` ##### 2. 创建编辑器实例 通过JavaScript代码创建编辑器实例。推荐使用内联方式,即将创建编辑器的代码直接写入HTML文档中,如: ```...
<script type="text/javascript" src="/fckeditor/fckeditor.js"> ``` 2. **初始化编辑器**:在页面中使用JavaScript代码初始化编辑器实例。 ##### 方法2: 使用API 除了直接在HTML中引用外,还可以通过API的方式...
它的源代码主要由JavaScript编写,其中`fckeditor.js`是核心类文件,负责编辑器的初始化、配置以及功能实现。以下是对`fckeditor.js`中部分关键知识点的详细解释: 1. **FCKeditor构造函数**: 当创建一个新的...
在FCKeditor目录里的fckconfig.js打开,找到FCKConfig.ToolbarSets[“Default”] 这里的设置是配置功能按钮的,你需要的留下,不需要的可以删掉,也可以注释掉。 如需要多种配置,可以设置多个FCKConfig....
7. `fckeditor`:这是一个目录,很可能包含了编辑器的JavaScript、CSS和其他相关资源文件,这些文件是FCKeditor运行所必需的。 8. `language`:这个目录可能包含了编辑器支持的不同语言包,使得非英语用户也能方便...
### Js 获取和修改FCKeditor的值的代码详解 #### 一、概述 FCKeditor是一款功能强大的富文本编辑器,被广泛应用于Web应用程序中,为用户提供了一个接近桌面编辑器的体验。通过JavaScript,我们可以轻松地与...
- 去掉注释 `//` 后,相当于将 `placeholder` 这个插件的功能添加到了FCKeditor中。 - 插件文件路径通常是 `FCKConfig.BasePath + 'plugins/'`。 通过上述介绍,我们可以看到FCKeditor_API提供了非常全面的功能,...