Index: trunk/phase3/resources/mediawiki.action/mediawiki.action.edit.js |
— | — | @@ -2,28 +2,29 @@ |
3 | 3 | * has not been jQuery-ized. |
4 | 4 | */ |
5 | 5 | |
6 | | -//make sure edit summary does not exceed byte limit |
7 | | -$( '#wpSummary' ).attr( 'maxLength', 250 ).keypress( function( e ) { |
8 | | - // first check to see if this is actually a character key |
9 | | - // being pressed. |
10 | | - // Based on key-event info from http://unixpapa.com/js/key.html |
11 | | - // JQuery should also normalize e.which to be consistent cross-browser, |
12 | | - // however the same check is still needed regardless of jQuery. |
| 6 | +(function( $ ) { |
| 7 | + //make sure edit summary does not exceed byte limit |
| 8 | + $( '#wpSummary' ).attr( 'maxLength', 250 ).keypress( function( e ) { |
| 9 | + // first check to see if this is actually a character key |
| 10 | + // being pressed. |
| 11 | + // Based on key-event info from http://unixpapa.com/js/key.html |
| 12 | + // JQuery should also normalize e.which to be consistent cross-browser, |
| 13 | + // however the same check is still needed regardless of jQuery. |
13 | 14 | |
14 | | - if ( e.which === 0 || e.charCode === 0 || e.ctrlKey || e.altKey || e.metaKey ) { |
15 | | - return true; //a special key (backspace, etc) so don't interfere. |
16 | | - } |
| 15 | + if ( e.which === 0 || e.charCode === 0 || e.ctrlKey || e.altKey || e.metaKey ) { |
| 16 | + return true; //a special key (backspace, etc) so don't interfere. |
| 17 | + } |
17 | 18 | |
18 | | - // This basically figures out how many bytes a UTF-16 string (which is what js sees) |
19 | | - // will take in UTF-8 by replacing a 2 byte character with 2 *'s, etc, and counting that. |
20 | | - // Note, surrogate (\uD800-\uDFFF) characters are counted as 2 bytes, since there's two of them |
21 | | - // and the actual character takes 4 bytes in UTF-8 (2*2=4). Might not work perfectly in edge cases |
22 | | - // such as illegal sequences, but that should never happen. |
| 19 | + // This basically figures out how many bytes a UTF-16 string (which is what js sees) |
| 20 | + // will take in UTF-8 by replacing a 2 byte character with 2 *'s, etc, and counting that. |
| 21 | + // Note, surrogate (\uD800-\uDFFF) characters are counted as 2 bytes, since there's two of them |
| 22 | + // and the actual character takes 4 bytes in UTF-8 (2*2=4). Might not work perfectly in edge cases |
| 23 | + // such as illegal sequences, but that should never happen. |
23 | 24 | |
24 | | - var len = this.value.replace( /[\u0080-\u07FF\uD800-\uDFFF]/g, '**' ).replace( /[\u0800-\uD7FF\uE000-\uFFFF]/g, '***' ).length; |
25 | | - //247 as this doesn't count character about to be inserted. |
26 | | - if ( len > 247 ) { |
27 | | - e.preventDefault(); |
28 | | - } |
29 | | -}); |
30 | | - |
| 25 | + var len = this.value.replace( /[\u0080-\u07FF\uD800-\uDFFF]/g, '**' ).replace( /[\u0800-\uD7FF\uE000-\uFFFF]/g, '***' ).length; |
| 26 | + //247 as this doesn't count character about to be inserted. |
| 27 | + if ( len > 247 ) { |
| 28 | + e.preventDefault(); |
| 29 | + } |
| 30 | + }); |
| 31 | +})(jQuery); |