Добавить 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 и упрощающий реализацию того, что мне нужно — с удовольствием ознакомлюсь с предложениями. |
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; })); } } }); |
Es scheint zu funktionieren. Ну е-мае! Все так просто, а я искал какие-то неведомые пути через незнай что. Спасибо!
Получается, эти words из hint вообще можно убрать. |
Часовой пояс GMT +3, время: 05:53. |