tinymce.PluginManager.add('ax_wordlimit', function(editor) { var pluginName='字数限制'; var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools'); var global$2 = tinymce.util.Tools.resolve('tinymce.util.Delay'); var ax_wordlimit_type = editor.getParam('ax_wordlimit_type', 'letter' ); var ax_wordlimit_num = editor.getParam('ax_wordlimit_num', false ); var ax_wordlimit_delay = editor.getParam('ax_wordlimit_delay', 500 ); var ax_wordlimit_callback = editor.getParam('ax_wordlimit_callback', function(){} ); var ax_wordlimit_event = editor.getParam('ax_wordlimit_event', 'SetContent Undo Redo Keyup' ); var onsign=1; //统计方法1:计算总字符数 var sumLetter = function(){ var html = editor.getContent(); var re1 = new RegExp("<.+?>","g"); var txt = html.replace(re1,''); txt = txt.replace(/\n/g,''); txt = txt.replace(/ /g,' '); var num=txt.length; return {txt:txt,num:num} } var onAct = function(){ if(onsign){ onsign=0; //此处预留更多统计方法 switch(ax_wordlimit_type){ case 'letter': default: var res = sumLetter(); } if( res.num > ax_wordlimit_num ){ ax_wordlimit_callback(editor, res.txt, ax_wordlimit_num); } setTimeout(function(){onsign=1}, ax_wordlimit_delay); } } var setup = function(){ if( ax_wordlimit_num>0 ){ global$2.setEditorTimeout(editor, function(){ var doth = editor.on(ax_wordlimit_event, onAct); }, 300); } }; setup(); return { getMetadata: function () { return { name: pluginName, url: "http://tinymce.ax-z.cn/more-plugins/ax_wordlimit.php", }; } }; });