summaryrefslogtreecommitdiffstats
path: root/wp-admin/js/word-count.js
diff options
context:
space:
mode:
Diffstat (limited to 'wp-admin/js/word-count.js')
-rw-r--r--wp-admin/js/word-count.js39
1 files changed, 39 insertions, 0 deletions
diff --git a/wp-admin/js/word-count.js b/wp-admin/js/word-count.js
new file mode 100644
index 0000000..9e3c1df
--- /dev/null
+++ b/wp-admin/js/word-count.js
@@ -0,0 +1,39 @@
+// Word count
+(function(JQ) {
+ wpWordCount = {
+
+ init : function() {
+ var t = this, last = 0, co = JQ('#content');
+
+ JQ('#wp-word-count').html( wordCountL10n.count.replace( /%d/, '<span id="word-count">0</span>' ) );
+ t.block = 0;
+ t.wc(co.val());
+ co.keyup( function(e) {
+ if ( e.keyCode == last ) return true;
+ if ( 13 == e.keyCode || 8 == last || 46 == last ) t.wc(co.val());
+ last = e.keyCode;
+ return true;
+ });
+ },
+
+ wc : function(tx) {
+ var t = this, w = JQ('#word-count'), tc = 0;
+
+ if ( t.block ) return;
+ t.block = 1;
+
+ setTimeout( function() {
+ if ( tx ) {
+ tx = tx.replace( /<.[^<>]*?>/g, ' ' ).replace( /&nbsp;/gi, ' ' );
+ tx = tx.replace( /[0-9.(),;:!?%#$¿'"_+=\\/-]*/g, '' );
+ tx.replace( /\S\s+/g, function(){tc++;} );
+ }
+ w.html(tc.toString());
+
+ setTimeout( function() { t.block = 0; }, 2000 );
+ }, 1 );
+ }
+ }
+}(jQuery));
+
+jQuery(document).ready( function(){ wpWordCount.init(); } );