cleanre : null,\r
\r
init : function(ed, url) {\r
- var t = this, last = 0;\r
+ var t = this, last = 0, VK = tinymce.VK;\r
\r
t.countre = ed.getParam('wordcount_countregex', /[\w\u2019\'-]+/g); // u2019 == ’\r
t.cleanre = ed.getParam('wordcount_cleanregex', /[0-9.(),;:!?%#$?\'\"_+=\\\/-]*/g);\r
+ t.update_rate = ed.getParam('wordcount_update_rate', 2000);\r
+ t.update_on_delete = ed.getParam('wordcount_update_on_delete', false);\r
t.id = ed.id + '-word-count';\r
\r
ed.onPostRender.add(function(ed, cm) {\r
t._count(ed);\r
});\r
\r
- ed.onKeyUp.add(function(ed, e) {\r
- if (e.keyCode == last)\r
- return;\r
+ function checkKeys(key) {\r
+ return key !== last && (key === VK.ENTER || last === VK.SPACEBAR || checkDelOrBksp(last));\r
+ }\r
+\r
+ function checkDelOrBksp(key) {\r
+ return key === VK.DELETE || key === VK.BACKSPACE;\r
+ }\r
\r
- if (13 == e.keyCode || 8 == last || 46 == last)\r
+ ed.onKeyUp.add(function(ed, e) {\r
+ if (checkKeys(e.keyCode) || t.update_on_delete && checkDelOrBksp(e.keyCode)) {\r
t._count(ed);\r
+ }\r
\r
last = e.keyCode;\r
});\r
if (!ed.destroyed) {\r
var tc = t._getCount(ed);\r
tinymce.DOM.setHTML(t.id, tc.toString());\r
- setTimeout(function() {t.block = 0;}, 2000);\r
+ setTimeout(function() {t.block = 0;}, t.update_rate);\r
}\r
}, 1);\r
},\r