该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2007-02-06
不是切换链接。是FCKEditor中的"代码"这个按钮,这个按钮显然不是FCKEditor自带的,而是robbin他们改造了FCKEditor之后增加进去的。我现在就是需要王FCKEditor中增加一个自定义的按钮。
|
|
返回顶楼 | |
发表时间:2007-02-07
KFCEditor loading太慢,想知道一些优化加速技巧
|
|
返回顶楼 | |
发表时间:2007-02-07
macrochen 写道 jackhlp 写道 嗯,FCKeditor确实不错,可以说是在线编辑器中最好的了,我前段时间也在看它,也错了一个像javaeye现在这样的一个插件,感觉很不错,呵呵
希望更多的朋友总结一些使用FCKEditor的经验,呵呵。 我最近一直在用FCKEditor ,感觉还不错.不知道LZ要哪方面的经验呢? FCKEditor写的很完美,我试图修改了好多次都没有修改成功. 不知道可有人知道用Fckeditor实现如下效果: 开始写内容时就自动保存所写内容,实现Ajax,当提交时自动删除保存的内容 期待中.................... |
|
返回顶楼 | |
发表时间:2007-02-07
zexunlee 写道 不是切换链接。是FCKEditor中的"代码"这个按钮,这个按钮显然不是FCKEditor自带的,而是robbin他们改造了FCKEditor之后增加进去的。我现在就是需要王FCKEditor中增加一个自定义的按钮。
源码 这个按钮不能随意开放,高手写段js代码就可以产生攻击. |
|
返回顶楼 | |
发表时间:2007-02-07
ahut9923 写道 zexunlee 写道 不是切换链接。是FCKEditor中的"代码"这个按钮,这个按钮显然不是FCKEditor自带的,而是robbin他们改造了FCKEditor之后增加进去的。我现在就是需要王FCKEditor中增加一个自定义的按钮。
源码 这个按钮不能随意开放,高手写段js代码就可以产生攻击. 不是希望开放代码,而是能不能提示一下,从哪个地方入手来进行修改,加入自定义的按钮。 |
|
返回顶楼 | |
发表时间:2007-02-07
ahut9923 写道 macrochen 写道 jackhlp 写道 嗯,FCKeditor确实不错,可以说是在线编辑器中最好的了,我前段时间也在看它,也错了一个像javaeye现在这样的一个插件,感觉很不错,呵呵
希望更多的朋友总结一些使用FCKEditor的经验,呵呵。 我最近一直在用FCKEditor ,感觉还不错.不知道LZ要哪方面的经验呢? FCKEditor写的很完美,我试图修改了好多次都没有修改成功. 不知道可有人知道用Fckeditor实现如下效果: 开始写内容时就自动保存所写内容,实现Ajax,当提交时自动删除保存的内容 期待中.................... 见过别人写的AUTOSAVE,功能如你所述的,但需要与SERVER交叉,做起多用户来麻烦占资源。 所以我觉得用COOKIE可以做 |
|
返回顶楼 | |
发表时间:2007-02-08
sp42 写道 KFCEditor loading太慢,想知道一些优化加速技巧
慢主要是toolbar,所以可以针对toolbar根据需要进行裁剪 如果不需要使用国际化,则只保留中文,具体做法可以google,网上有很多 |
|
返回顶楼 | |
发表时间:2007-02-08
zexunlee 写道 不是切换链接。是FCKEditor中的"代码"这个按钮,这个按钮显然不是FCKEditor自带的,而是robbin他们改造了FCKEditor之后增加进去的。我现在就是需要王FCKEditor中增加一个自定义的按钮。
这个功能可以参考image, flash以及table那几个toolbar item的做法来实现,基本原理无非是打开一个dialog,然后输入一些内容,点击“确定”按钮,将输入的内容添加到editor相应的位置。 在_source\internals\fcktoolbaritems.js文件中,我们可以看到如下代码: case 'Image' : oItem = new FCKToolbarButton( 'Image' , FCKLang.InsertImageLbl, FCKLang.InsertImage, null, false, true, 37 ) ; break ; 因此我们可以参照其做法,添加自己的toolbar item。 在创建toolbar item的js文件_source\internals\fcktoolbarbutton.js文件里面我们会找到下面的代码: FCKToolbarButton.prototype.Click = function() { var oToolbarButton = this._ToolbarButton || this ; FCK.ToolbarSet.CurrentInstance.Commands.GetCommand( oToolbarButton.CommandName ).Execute() ; } 然后在_source\internals\fckcommands.js找到GetCommand函数,里面包含了创建image的相关command创建过程: case 'Image' : oCommand = new FCKDialogCommand( 'Image' , FCKLang.DlgImgTitle , 'dialog/fck_image.html' , 450, 400 ) ; break ; 因此我们要创建自己的dialog,也需要在dilaog目录下面创建一个fck_xxx.html的模版文件,参照image的dialog,其主要工作就是如何在点击确定的时候将输入的内容加入到editor中指定的位置,这里我们可以参考editor\dialog\fck_image\fck_image.js文件的代码: //#### The OK button was hit. function Ok() { if ( GetE('txtUrl').value.length == 0 ) { window.parent.SetSelectedTab( 'Info' ) ; GetE('txtUrl').focus() ; alert( FCKLang.DlgImgAlertUrl ) ; return false ; } var bHasImage = ( oImage != null ) ; if ( bHasImage && bImageButton && oImage.tagName == 'IMG' ) { if ( confirm( 'Do you want to transform the selected image on a image button?' ) ) oImage = null ; } else if ( bHasImage && !bImageButton && oImage.tagName == 'INPUT' ) { if ( confirm( 'Do you want to transform the selected image button on a simple image?' ) ) oImage = null ; } if ( !bHasImage ) { if ( bImageButton ) { oImage = FCK.EditorDocument.createElement( 'INPUT' ) ; oImage.type = 'image' ; oImage = FCK.InsertElementAndGetIt( oImage ) ; } else oImage = FCK.CreateElement( 'IMG' ) ; } else oEditor.FCKUndo.SaveUndoStep() ; UpdateImage( oImage ) ; var sLnkUrl = GetE('txtLnkUrl').value.trim() ; if ( sLnkUrl.length == 0 ) { if ( oLink ) FCK.ExecuteNamedCommand( 'Unlink' ) ; } else { if ( oLink ) // Modifying an existent link. oLink.href = sLnkUrl ; else // Creating a new link. { if ( !bHasImage ) oEditor.FCKSelection.SelectNode( oImage ) ; oLink = oEditor.FCK.CreateLink( sLnkUrl ) ; if ( !bHasImage ) { oEditor.FCKSelection.SelectNode( oLink ) ; oEditor.FCKSelection.Collapse( false ) ; } } SetAttribute( oLink, '_fcksavedurl', sLnkUrl ) ; SetAttribute( oLink, 'target', GetE('cmbLnkTarget').value ) ; } return true ; } |
|
返回顶楼 | |
发表时间:2007-02-08
macrochen 写道 zexunlee 写道 不是切换链接。是FCKEditor中的"代码"这个按钮,这个按钮显然不是FCKEditor自带的,而是robbin他们改造了FCKEditor之后增加进去的。我现在就是需要王FCKEditor中增加一个自定义的按钮。
这个功能可以参考image, flash以及table那几个toolbar item的做法来实现,基本原理无非是打开一个dialog,然后输入一些内容,点击“确定”按钮,将输入的内容添加到editor相应的位置。 在_source\internals\fcktoolbaritems.js文件中,我们可以看到如下代码: case 'Image' : oItem = new FCKToolbarButton( 'Image' , FCKLang.InsertImageLbl, FCKLang.InsertImage, null, false, true, 37 ) ; break ; 因此我们可以参照其做法,添加自己的toolbar item。 在创建toolbar item的js文件_source\internals\fcktoolbarbutton.js文件里面我们会找到下面的代码: FCKToolbarButton.prototype.Click = function() { var oToolbarButton = this._ToolbarButton || this ; FCK.ToolbarSet.CurrentInstance.Commands.GetCommand( oToolbarButton.CommandName ).Execute() ; } 然后在_source\internals\fckcommands.js找到GetCommand函数,里面包含了创建image的相关command创建过程: case 'Image' : oCommand = new FCKDialogCommand( 'Image' , FCKLang.DlgImgTitle , 'dialog/fck_image.html' , 450, 400 ) ; break ; 因此我们要创建自己的dialog,也需要在dilaog目录下面创建一个fck_xxx.html的模版文件,参照image的dialog,其主要工作就是如何在点击确定的时候将输入的内容加入到editor中指定的位置,这里我们可以参考editor\dialog\fck_image\fck_image.js文件的代码: //#### The OK button was hit. function Ok() { if ( GetE('txtUrl').value.length == 0 ) { window.parent.SetSelectedTab( 'Info' ) ; GetE('txtUrl').focus() ; alert( FCKLang.DlgImgAlertUrl ) ; return false ; } var bHasImage = ( oImage != null ) ; if ( bHasImage && bImageButton && oImage.tagName == 'IMG' ) { if ( confirm( 'Do you want to transform the selected image on a image button?' ) ) oImage = null ; } else if ( bHasImage && !bImageButton && oImage.tagName == 'INPUT' ) { if ( confirm( 'Do you want to transform the selected image button on a simple image?' ) ) oImage = null ; } if ( !bHasImage ) { if ( bImageButton ) { oImage = FCK.EditorDocument.createElement( 'INPUT' ) ; oImage.type = 'image' ; oImage = FCK.InsertElementAndGetIt( oImage ) ; } else oImage = FCK.CreateElement( 'IMG' ) ; } else oEditor.FCKUndo.SaveUndoStep() ; UpdateImage( oImage ) ; var sLnkUrl = GetE('txtLnkUrl').value.trim() ; if ( sLnkUrl.length == 0 ) { if ( oLink ) FCK.ExecuteNamedCommand( 'Unlink' ) ; } else { if ( oLink ) // Modifying an existent link. oLink.href = sLnkUrl ; else // Creating a new link. { if ( !bHasImage ) oEditor.FCKSelection.SelectNode( oImage ) ; oLink = oEditor.FCK.CreateLink( sLnkUrl ) ; if ( !bHasImage ) { oEditor.FCKSelection.SelectNode( oLink ) ; oEditor.FCKSelection.Collapse( false ) ; } } SetAttribute( oLink, '_fcksavedurl', sLnkUrl ) ; SetAttribute( oLink, 'target', GetE('cmbLnkTarget').value ) ; } return true ; } 多谢楼主,受益非浅。多交流。 |
|
返回顶楼 | |
发表时间:2007-02-10
对于使用fck,发现JavaEye有点偷懒哈,居然连中文字体都没有加一个
|
|
返回顶楼 | |