WordPress.org

Make WordPress Core

Changeset 33458


Ignore:
Timestamp:
07/28/2015 11:40:29 AM (5 years ago)
Author:
iseulde
Message:

TinyMCE: wptextpattern: fix typo and make it faster

See #31441.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/js/tinymce/plugins/wptextpattern/plugin.js

    r33452 r33458  
    1313( function( tinymce, setTimeout ) {
    1414    tinymce.PluginManager.add( 'wptextpattern', function( editor ) {
    15         var $$ = editor.$,
    16             VK = tinymce.util.VK,
     15        var VK = tinymce.util.VK,
    1716            canUndo = false,
    1817            spacePatterns = [
     
    4544
    4645        editor.on( 'keyup', function( event ) {
    47             if ( event.keyCode === VK.SPACEBAR || ! VK.modifierPressed( event ) ) {
     46            if ( event.keyCode === VK.SPACEBAR && ! VK.modifierPressed( event ) ) {
    4847                space();
    4948            }
     
    8079            var rng = editor.selection.getRng(),
    8180                node = rng.startContainer,
     81                parent,
    8282                text;
    8383
    84             if ( firstNode( node ) !== node ) {
     84            if ( ! node || firstNode( node ) !== node ) {
    8585                return;
    8686            }
    8787
     88            parent = node.parentNode;
    8889            text = node.data;
    8990
    9091            tinymce.each( spacePatterns, function( pattern ) {
    91                 var replace = text.replace( pattern.regExp, '' );
     92                var match = text.match( pattern.regExp );
    9293
    93                 if ( text === replace ) {
    94                     return;
    95                 }
    96 
    97                 if ( rng.startOffset !== text.length - replace.length ) {
     94                if ( ! match || rng.startOffset !== match[0].length ) {
    9895                    return;
    9996                }
     
    10299
    103100                editor.undoManager.transact( function() {
    104                     var parent = node.parentNode,
    105                         $$parent;
     101                    node.deleteData( 0, match[0].length );
    106102
    107                     if ( replace ) {
    108                         $$( node ).replaceWith( document.createTextNode( replace ) );
    109                     } else  {
    110                         $$parent = $$( parent );
    111 
    112                         $$( node ).remove();
    113 
    114                         if ( ! $$parent.html() ) {
    115                             $$parent.append( '<br>' );
    116                         }
     103                    if ( ! parent.innerHTML ) {
     104                        parent.appendChild( document.createElement( 'br' ) );
    117105                    }
    118106
Note: See TracChangeset for help on using the changeset viewer.