破釜沉舟论坛 » WEB 开发 » 让FckEditor具有自动保存功能(转)

2006-9-12 18:05 木舟
让FckEditor具有自动保存功能(转)

[quote]
最近好多朋友问到Fckeditor的自动保存功能,在此写一下自己是怎么实现的。其实思路很简单。

页面载入时注册TimeOut事件,以监控指定Fckeditor的内容
当TimeOut事件确发时,如果Fckeditor的内容发生变化则自动保存,再重新注册TimeOut事件
如果保存自己去实现吧,文本,XML,数据库都可以
其实个人觉得最郁闷的就是如何取得Fckeditor的内容,特别在.NET下直接使用工具栏放入而不是使用Fckeditor API实现的情况下,这个我研究出来了,可以看我附的Js源码。
注:Ajax框架使用prototype.js实现。 [/quote]

[code]
<!--

/*

为FckEditor增加自动备份功能
网页运行时注册FckeditorAutoSave
为吕的部落格定制,基于会员
需要在页面中设置一个id="
研究了好久才取得Fckeditor值,郁闷...

Powered By Lvjiyong.com
使用或转载请勿删除作者信息
吕继勇 2006.5.31

*/

var FckAutoSaveTime
var FckeditorNum;
var FckUpdateId;
var FckTitle;
var FckInfo;
var GUID;
var url = "[url]http://www.lvjiyong.com/Admin/Blog/Article/PostNew.aspx[/url]"; //保存处理地址

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 myAjax = new Ajax.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;
}
-->  
[/code]

转自: [url]http://www.lvjiyong.com/item/FckeditorAutoSaveCode[/url]

页: [1]


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.