Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.04.2016, 14:21
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,576

Подключил CkEditor, отключилась вставка в текстарию.
Привет.
Сделал раньше для текстарии вставку в нее токенов, а сейчас понадобился для нее ckeditor и такая вставка перестала работать.
Может кто встречал как настроить ckeditor чтобы он сек эти вещи?
Вот набросал:
https://jsfiddle.net/e7646e3a/
<div>
<button id="insert">
Вставить токен
</button>
<button id="ckeditor">
Включить ckeditor
</button>
<button id="ckeditordel">
Выключить ckeditor
</button>
</div>
<div>
<textarea id="textarea1" rows="10" cols="50">
  первая строка
  вторая строка
</textarea>
</div>


jQuery.fn.extend({
insertAtCaret: function(myValue){
  return this.each(function(i) {
    if (document.selection) {
      //For browsers like Internet Explorer
      this.focus();
      var sel = document.selection.createRange();
      sel.text = myValue;
      this.focus();
    }
    else if (this.selectionStart || this.selectionStart == '0') {
      //For browsers like Firefox and Webkit based
      var startPos = this.selectionStart;
      var endPos = this.selectionEnd;
      var scrollTop = this.scrollTop;
      this.value = this.value.substring(0, startPos)+myValue+this.value.substring(endPos,this.value.length);
      this.focus();
      this.selectionStart = startPos + myValue.length;
      this.selectionEnd = startPos + myValue.length;
      this.scrollTop = scrollTop;
    } else {
      this.value += myValue;
      this.focus();
    }
  });
}
});
CKEDITOR.env.isCompatible = true;
$(document).ready(function(){
var editor = null;    
$('#insert').click(function(){
    	   $('#textarea1').insertAtCaret(' [[INSERT]] ');
      });
$('#ckeditor').click(function(){
    	editor = CKEDITOR.replace('textarea1');
    });    
$('#ckeditordel').click(function(){
    	if (editor) {
      editor.destroy();
      editor = null;
      }
    });    
    
});
Ответить с цитированием
  #2 (permalink)  
Старый 22.04.2016, 15:32
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

if (editor != null) {
     editor.insertText(' [[INSERT]] ');
} else {
     $('#textarea1').insertAtCaret(' [[INSERT]] ');
}

Это нужно ?
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай

Последний раз редактировалось walik, 22.04.2016 в 15:34.
Ответить с цитированием
  #3 (permalink)  
Старый 22.04.2016, 15:45
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,576

я первоначально думал не завязываться на каком то определенном редакторе (editor.insertText), чтобы можно было подключить любой, но думаю придется через какую то обертку сечь что за редактор сейчас отрабатывает на текстарии в которую вставляется код.
Ответить с цитированием
  #4 (permalink)  
Старый 23.04.2016, 08:39
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,576

А не знаете, вот на этом же примере, если выключать/включать ckeditor то каждый раз у меня(firefox 45.0.2) добавляет вначале еще одну
<!-- cke-content-start -->

и таким оно в базу и сохраняет. Как бы это убрать?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск