| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 | 
							- UE.plugin.register('autosave', function (){
 
-     var me = this,
 
-         //无限循环保护
 
-         lastSaveTime = new Date(),
 
-         //最小保存间隔时间
 
-         MIN_TIME = 20,
 
-         //auto save key
 
-         saveKey = null;
 
-     function save ( editor ) {
 
-         var saveData;
 
-         if ( new Date() - lastSaveTime < MIN_TIME ) {
 
-             return;
 
-         }
 
-         if ( !editor.hasContents() ) {
 
-             //这里不能调用命令来删除, 会造成事件死循环
 
-             saveKey && me.removePreferences( saveKey );
 
-             return;
 
-         }
 
-         lastSaveTime = new Date();
 
-         editor._saveFlag = null;
 
-         saveData = me.body.innerHTML;
 
-         if ( editor.fireEvent( "beforeautosave", {
 
-             content: saveData
 
-         } ) === false ) {
 
-             return;
 
-         }
 
-         me.setPreferences( saveKey, saveData );
 
-         editor.fireEvent( "afterautosave", {
 
-             content: saveData
 
-         } );
 
-     }
 
-     return {
 
-         defaultOptions: {
 
-             //默认间隔时间
 
-             saveInterval: 500,
 
-             enableAutoSave: true
 
-         },
 
-         bindEvents:{
 
-             'ready':function(){
 
-                 var _suffix = "-drafts-data",
 
-                     key = null;
 
-                 if ( me.key ) {
 
-                     key = me.key + _suffix;
 
-                 } else {
 
-                     key = ( me.container.parentNode.id || 'ue-common' ) + _suffix;
 
-                 }
 
-                 //页面地址+编辑器ID 保持唯一
 
-                 saveKey = ( location.protocol + location.host + location.pathname ).replace( /[.:\/]/g, '_' ) + key;
 
-             },
 
-             'contentchange': function () {
 
-                 if (!me.getOpt('enableAutoSave')) {
 
-                     return;
 
-                 }
 
-                 if ( !saveKey ) {
 
-                     return;
 
-                 }
 
-                 if ( me._saveFlag ) {
 
-                     window.clearTimeout( me._saveFlag );
 
-                 }
 
-                 if ( me.options.saveInterval > 0 ) {
 
-                     me._saveFlag = window.setTimeout( function () {
 
-                         save( me );
 
-                     }, me.options.saveInterval );
 
-                 } else {
 
-                     save(me);
 
-                 }
 
-             }
 
-         },
 
-         commands:{
 
-             'clearlocaldata':{
 
-                 execCommand:function (cmd, name) {
 
-                     if ( saveKey && me.getPreferences( saveKey ) ) {
 
-                         me.removePreferences( saveKey )
 
-                     }
 
-                 },
 
-                 notNeedUndo: true,
 
-                 ignoreContentChange:true
 
-             },
 
-             'getlocaldata':{
 
-                 execCommand:function (cmd, name) {
 
-                     return saveKey ? me.getPreferences( saveKey ) || '' : '';
 
-                 },
 
-                 notNeedUndo: true,
 
-                 ignoreContentChange:true
 
-             },
 
-             'drafts':{
 
-                 execCommand:function (cmd, name) {
 
-                     if ( saveKey ) {
 
-                         me.body.innerHTML = me.getPreferences( saveKey ) || '<p>'+domUtils.fillHtml+'</p>';
 
-                         me.focus(true);
 
-                     }
 
-                 },
 
-                 queryCommandState: function () {
 
-                     return saveKey ? ( me.getPreferences( saveKey ) === null ? -1 : 0 ) : -1;
 
-                 },
 
-                 notNeedUndo: true,
 
-                 ignoreContentChange:true
 
-             }
 
-         }
 
-     }
 
- });
 
 
  |