2015-09-25 3 views
0

Я сейчас работаю над ckeditor для проекта, Мы используем плагин диалога ссылок.установка cceditor caret в конце новой ссылки

Как сказано в названии, я хочу сделать новые ссылки и установить каретку в конце ее. Поведение по умолчанию выбирает текст в редакторе после добавления новой ссылки.

Я работал вокруг с link.js плагин

Я думаю, что находится там, где это произойдет, но я не в состоянии установить свою каретку после окончания моего тега во всех случаях (это работает иногда => он помещает каретку в конец, но после некоторых попыток он помещает его в начале моей ссылки)

Вот пример того, что он делает: Первый раз: [a href = "#" ] моя ссылка [/ a]^ после некоторых попыток: [a href = "#"] моя ссылка [/ a] [a href = "#"] моя ссылка [/ a]^[a href = "#"] моя ссылка [/ a]

код в сторона метода onOk плагина ссылки:

//I've commented the line under to have no selection : it works 
//range.select(); 
// According to the doc, this should do the job ?? 
range.moveToPosition(text, CKEDITOR.POSITION_AFTER_END); 

Благодарим за внимание.

Dre.

ответ

1

Вы можете достичь этого, не касаясь ядра плагина. Стратегия состоит в том, чтобы выполнить диалог по умолчанию onOk, а затем просто отрегулировать выбор в соответствии с вашими потребностями (JSFiddle). Чтобы сделать это, вам нужно переписать по умолчанию onOk на dialogDefinition события в первую очередь:

CKEDITOR.on('dialogDefinition', function(evt) { 
    var dialogName = evt.data.name; 
    var dialogDefinition = evt.data.definition; 
    var editor = evt.editor; 

    if (dialogName == 'link') { 
     var defaultOnOk = dialogDefinition.onOk; 

     dialogDefinition.onOk = function() {    
      defaultOnOk.apply(this, arguments); 

      var sel = editor.getSelection(), 
       range = sel.getRanges()[ 0 ], 
       path = range.startPath(); 

      range.moveToPosition(path.contains('a'), CKEDITOR.POSITION_AFTER_END); 
      range.select(); 
     } 
    } 
}); 
+0

Hi Олек, спасибо НУ за ответ, после того, как делаешь, что я получил следующую ошибку неперехваченным TypeError: Не удается прочитать свойство 'getParent' из null Я удалил действие select, потому что не хочу, чтобы мой текст был выбран, так или иначе, из-за этой ошибки мой диалог не закрывается. – dredtrake

 Смежные вопросы

  • Нет связанных вопросов^_^