FCKeditor的几则学习总结

FCKeditor是一个优秀的开源Web Rich Editor. 套用一句广告词,FCKeditor,挺好的,我们天天都用它。

以前研究过其源代码,也做了一些Crack的事情,下面把以前总结的东西翻出来晾晾吧。

1、如何获取Fckeditor的文档内容
FCK.EditorDocument.getElementsByTagName("html")[0]

2、FCKEnterKey._FixBlock 如果新的段落没有tag标签,则添加一个,在var oFixedBlock = this.Window.document.createElement( blockTag ) ; 之后,可以设置其ID;

3、bSuccess = object.execCommand(sCommand [, bUserInterface] [, vValue])
让一个选定的对象执行一个内置的命令,比如:
var sText = document.selection.createRange();
document.execCommand("CreateLink");

4、在FCKEditor中按一个键之后,执行的代码顺序是:
FCKKeyStrokeHandler._FCKKeystrokeHandler_OnKeyPress() →
fcktools_xxx.AddEventListenerEx() →
FCKKeyStrokeHandler._FCKKeystrokeHandler_OnKeyPress()  →
fcktools_xxx.AddEventListenerEx()

5、在一个段落的段首回车时,执行fckkeyenter.js._ExecuteEnterBlock() 其中,是将原来的一个Block clone了一下,但这样就有问题,如果原来的Block有id属性的话,那么新的段落的id也将与其一样。
需要在eStartBlock.parentNode.insertBefore(eNewBlock, eStartBlock);之后显示的设置 eNewBlock.id = "xxxxxxx"; near Line 325

6、需要注意的问题是:所有的fckeditor的js source code,都是在一个fckeditor.html中起作用的,在其包含文件中调用fckeditor.js时,需要注意。

7、如何获得当前正在编辑的段落id?
在编辑器中插入一个空元素,然后获取该元素的顶层非Body父元素即可
  var oSel2 = FCK.CreateElement("span");
  while (oSel2.parentNode && oSel2.parentNode.tagName != "BODY") {
   oSel2 = oSel2.parentNode;
  } 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值