Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.05.2017, 21:25
Новичок на форуме
Отправить личное сообщение для William Blake Посмотреть профиль Найти все сообщения от William Blake
 
Регистрация: 09.05.2017
Сообщений: 5

Добавить hint words в редактор Sumernote без перезагрузки страницы/самого редактора
Есть такой редактор - Summernote, он поддерживает функцию автодополнения слова. Например, вводишь две буквы Ja, под ними появляется pop-up меню с возможными дополнениями слова: Java, Jason, ... и тому подобное. Слова для автодополнения подгружаются из словаря, который нужно задать до инициализации сущности Summernote. Вот простой пример с сайта разработчика:
$(".hint2basic").summernote({
  height: 100,
  toolbar: false,
  placeholder: 'type with apple, orange, watermelon and lemon',
  hint: {
    words: ['apple', 'orange', 'watermelon', 'lemon'],
    match: /\b(\w{1,})$/,
    search: function (keyword, callback) {
      callback($.grep(this.words, function (item) {
        return item.indexOf(keyword) === 0;
      }));
    }
  }
});

(".hint2basic") ищет на странице блок div с классом hint2basic, затем создает сущность summernote. Здесь можно посмотреть пример, как это работает.

Вопрос же следующий: как можно передавать слова в словарь и после инициализации Summernote? То есть, например, по событию onChange для контента внутри Summernote мне от сервера приходит некоторый массив ["car", "house", "bag"]. И как можно этот словарь подставить вместо ['apple', 'orange', 'watermelon', 'lemon'] без перезагрузки страницы/редактора? То есть, как сделать так, чтобы редактор подхватывал то, что приходит от сервера?

Пробовал по событию onChange вызывать $('#editor').summernote('destroy'); - уничтожает текущую сущность Summernote, затем инициализировал новую с уже полученным словарем, но в данном случае проблема в том, что скрипт при каждом изменении контента внутри Summernote уничтожает его и создает новый, что делает работу с редактором невозможной.

Если же имеется какой-то более удобный редактор, поддерживающий, как минимум, функционал Summernote и упрощающий реализацию того, что мне нужно — с удовольствием ознакомлюсь с предложениями.
Ответить с цитированием
  #2 (permalink)  
Старый 09.05.2017, 21:41
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

William Blake,
мысли вслух ...
var abrakadbra = [];
$(".hint2basic").summernote({
  height: 100,
  toolbar: false,
  placeholder: 'type with apple, orange, watermelon and lemon',
  hint: {
    words: ['apple', 'orange', 'watermelon', 'lemon'],
    match: /\b(\w{1,})$/,
    search: function (keyword, callback) {
      callback($.grep(abrakadbra, function (item) {
        return item.indexOf(keyword) === 0;
      }));
    }
  }
});
Ответить с цитированием
  #3 (permalink)  
Старый 10.05.2017, 01:33
Новичок на форуме
Отправить личное сообщение для William Blake Посмотреть профиль Найти все сообщения от William Blake
 
Регистрация: 09.05.2017
Сообщений: 5

Es scheint zu funktionieren. Ну е-мае! Все так просто, а я искал какие-то неведомые пути через незнай что. Спасибо!
Получается, эти words из hint вообще можно убрать.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как добавить комментарии без перезагрузки страницы dimaan777 Events/DOM/Window 5 21.11.2010 02:11