让FckEditor具有自动保存功能

来源:互联网 发布:淘宝上文艺小物件店铺 编辑:程序博客网 时间:2024/04/26 18:03
最近好多朋友问到Fckeditor的自动保存功能,在此写一下自己是怎么实现的。其实思路很简单。
  1. 页面载入时注册TimeOut事件,以监控指定Fckeditor的内容
  2. 当TimeOut事件确发时,如果Fckeditor的内容发生变化则自动保存,再重新注册TimeOut事件
  3. 如果保存自己去实现吧,文本,XML,数据库都可以
  4. 其实个人觉得最郁闷的就是如何取得Fckeditor的内容,特别在.NET下直接使用工具栏放入而不是使用Fckeditor API实现的情况下,这个我研究出来了,可以看我附的Js源码。
注:Ajax框架使用prototype.js实现。 <!--/*为FckEditor增加自动备份功能网页运行时注册FckeditorAutoSave为吕的部落格定制,基于会员需要在页面中设置一个id="研究了好久才取得Fckeditor值,郁闷...Powered By Lvjiyong.com使用或转载请勿删除作者信息吕继勇 2006.5.31*/var FckAutoSaveTimevar FckeditorNum;var FckUpdateId;var FckTitle;var FckInfo;var GUID;var url = "http://www.lvjiyong.com/Admin/Blog/Article/PostNew.aspx"; //保存处理地址var Fcktemp = '';function FckedtiorAutoSave(autoSaveTime,fckeditorNum,updateId,fckTitle,fckinfo,guid){FckAutoSaveTime = autoSaveTime;FckeditorNum = fckeditorNum;FckUpdateId = updateId;FckTitle = fckTitle;FckInfo = fckinfo;GUID = guid;window.setTimeout("FCKTimer()",FckAutoSaveTime);}function FCKTimer(){FckSave();window.setTimeout("FCKTimer()",FckAutoSaveTime);}function FckSave(){var body = getFckeditorContent(FckeditorNum);if(Fcktemp != body && body.length > 36){$(FckUpdateId).innerHTML = FckInfo;var title = $F(FckTitle);var postData = 'ajaxaction=FckeditorAutoSave&GUID=' + GUID + '&Title=' + title + '&Body=' + body;var my<a title="Ajax更多内容" href="/tag/Ajax" >Ajax</a> = new <a title="Ajax更多内容" href="/tag/Ajax" >Ajax</a>.Updater(FckUpdateId, url, {method: 'post', postBody: postData});Fcktemp = getFckeditorContent(FckeditorNum);}}function getFckeditorContent(fckeditorNum){return window.frames[fckeditorNum].window.frames[0].document.body.innerHTML;//return window.frames[最好用名称].window.frames[0].document.body.innerHTML;}-->