diff -r 2f6f6f7551ca -r 32102edaa81b web/wp-admin/js/word-count.dev.js --- a/web/wp-admin/js/word-count.dev.js Thu Sep 16 15:45:36 2010 +0000 +++ b/web/wp-admin/js/word-count.dev.js Mon Nov 19 18:26:13 2012 +0100 @@ -1,32 +1,33 @@ -// Word count -(function($) { +(function($,undefined) { wpWordCount = { - init : function() { - var t = this, last = 0, co = $('#content'); - - $('#wp-word-count').html( wordCountL10n.count.replace( /%d/, '0' ) ); - 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; - }); + settings : { + strip : /<[a-zA-Z\/][^<>]*>/g, // strip HTML tags + clean : /[0-9.(),;:!?%#$¿'"_+=\\/-]+/g, // regexp to remove punctuation, etc. + w : /\S\s+/g, // word-counting regexp + c : /\S/g // char-counting regexp for asian languages }, - wc : function(tx) { - var t = this, w = $('#word-count'), tc = 0; + block : 0, + + wc : function(tx, type) { + var t = this, w = $('.word-count'), tc = 0; - if ( t.block ) return; + if ( type === undefined ) + type = wordCountL10n.type; + if ( type !== 'w' && type !== 'c' ) + type = 'w'; + + if ( t.block ) + return; + t.block = 1; setTimeout( function() { if ( tx ) { - tx = tx.replace( /<.[^<>]*?>/g, ' ' ).replace( / | /gi, ' ' ); - tx = tx.replace( /[0-9.(),;:!?%#$¿'"_+=\\/-]*/g, '' ); - tx.replace( /\S\s+/g, function(){tc++;} ); + tx = tx.replace( t.settings.strip, ' ' ).replace( / | /gi, ' ' ); + tx = tx.replace( t.settings.clean, '' ); + tx.replace( t.settings[type], function(){tc++;} ); } w.html(tc.toString()); @@ -35,5 +36,7 @@ } } - $(document).ready( function(){ wpWordCount.init(); } ); + $(document).bind( 'wpcountwords', function(e, txt) { + wpWordCount.wc(txt); + }); }(jQuery));