Как backspace и delete работают в CKEditor? - PullRequest
0 голосов
/ 14 апреля 2011

Как работают клавиши возврата и удаления в CKEditor? Если у меня есть iframe в редактируемой области, и рядом с ним находится курсор, нажатие клавиши backspace / delete удаляет iframe / удаляет его HTML-код оттуда.

Что я не смог получить, это где код для такого поведения? Там, где при нажатии Backspace диапазон сокращается до iframe, и он был удален.

Пожалуйста, укажите мне правильное направление, где это происходит в исходном коде.

1 Ответ

1 голос
/ 15 апреля 2011

Есть что-то об удалении

oKeystrokeHandler.SetKeystrokes

Но я не об этом поведении

var FCKEnterKey = function( targetWindow, enterMode, shiftEnterMode, tabSpaces ) 
{
   this.Window         = targetWindow ;
   this.EnterMode      = enterMode || 'p' ;
   this.ShiftEnterMode   = shiftEnterMode || 'br' ;

   // Setup the Keystroke Handler.
   var oKeystrokeHandler = new FCKKeystrokeHandler( false ) ;
   oKeystrokeHandler._EnterKey = this ;
   oKeystrokeHandler.OnKeystroke = FCKEnterKey_OnKeystroke ;

   oKeystrokeHandler.SetKeystrokes( [
      [ 13      , 'Enter' ],
      [ SHIFT + 13, 'ShiftEnter' ],
      [ 8         , 'Backspace' ],
      [ CTRL + 8   , 'CtrlBackspace' ],
      [ 46      , 'Delete' ]
   ] ) ;

   this.TabText = '' ;

   // Safari by default inserts 4 spaces on TAB, while others make the editor
   // loose focus. So, we need to handle it here to not include those spaces.
   if ( tabSpaces > 0 || FCKBrowserInfo.IsSafari )
   {
      while ( tabSpaces-- )
         this.TabText += '\xa0' ;

      oKeystrokeHandler.SetKeystrokes( [ 9, 'Tab' ] );
   }

   oKeystrokeHandler.AttachToElement( targetWindow.document ) ;
}

http://code.google.com/p/easyfckeditor/source/browse/trunk/src/main/java/oh/how/easy/fck/js/fckeditor/editor/_source/classes/fckenterkey.js?r=2

...