web/wp-admin/js/word-count.dev.js
author ymh <ymh.work@gmail.com>
Mon, 22 Mar 2010 16:36:28 +0100
changeset 5 ac511f1ccc8e
parent 1 0d28b7c10758
permissions -rw-r--r--
add hgignore
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
0d28b7c10758 First commit
ymh
parents:
diff changeset
     1
// Word count
0d28b7c10758 First commit
ymh
parents:
diff changeset
     2
(function($) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
     3
	wpWordCount = {
0d28b7c10758 First commit
ymh
parents:
diff changeset
     4
0d28b7c10758 First commit
ymh
parents:
diff changeset
     5
		init : function() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
     6
			var t = this, last = 0, co = $('#content');
0d28b7c10758 First commit
ymh
parents:
diff changeset
     7
0d28b7c10758 First commit
ymh
parents:
diff changeset
     8
			$('#wp-word-count').html( wordCountL10n.count.replace( /%d/, '<span id="word-count">0</span>' ) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
     9
			t.block = 0;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    10
			t.wc(co.val());
0d28b7c10758 First commit
ymh
parents:
diff changeset
    11
			co.keyup( function(e) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    12
				if ( e.keyCode == last ) return true;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    13
				if ( 13 == e.keyCode || 8 == last || 46 == last ) t.wc(co.val());
0d28b7c10758 First commit
ymh
parents:
diff changeset
    14
				last = e.keyCode;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    15
				return true;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    16
			});
0d28b7c10758 First commit
ymh
parents:
diff changeset
    17
		},
0d28b7c10758 First commit
ymh
parents:
diff changeset
    18
0d28b7c10758 First commit
ymh
parents:
diff changeset
    19
		wc : function(tx) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    20
			var t = this, w = $('#word-count'), tc = 0;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    21
0d28b7c10758 First commit
ymh
parents:
diff changeset
    22
			if ( t.block ) return;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    23
			t.block = 1;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    24
0d28b7c10758 First commit
ymh
parents:
diff changeset
    25
			setTimeout( function() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    26
				if ( tx ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    27
					tx = tx.replace( /<.[^<>]*?>/g, ' ' ).replace( /&nbsp;|&#160;/gi, ' ' );
0d28b7c10758 First commit
ymh
parents:
diff changeset
    28
					tx = tx.replace( /[0-9.(),;:!?%#$¿'"_+=\\/-]*/g, '' );
0d28b7c10758 First commit
ymh
parents:
diff changeset
    29
					tx.replace( /\S\s+/g, function(){tc++;} );
0d28b7c10758 First commit
ymh
parents:
diff changeset
    30
				}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    31
				w.html(tc.toString());
0d28b7c10758 First commit
ymh
parents:
diff changeset
    32
0d28b7c10758 First commit
ymh
parents:
diff changeset
    33
				setTimeout( function() { t.block = 0; }, 2000 );
0d28b7c10758 First commit
ymh
parents:
diff changeset
    34
			}, 1 );
0d28b7c10758 First commit
ymh
parents:
diff changeset
    35
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    36
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    37
0d28b7c10758 First commit
ymh
parents:
diff changeset
    38
	$(document).ready( function(){ wpWordCount.init(); } );
0d28b7c10758 First commit
ymh
parents:
diff changeset
    39
}(jQuery));