1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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",
};
}
};
});