Как я могу обнаружить событие вставки смайликов из средства просмотра символов OS X и клавиатуры смайликов iOS в Javascript/Redactor?

У меня возникли проблемы с тем, чтобы Redactor (WYSIWYG-совместимый веб-редактор Imperavi) распознавал событие вставки символов, возникающее в результате просмотра символов OS X и встроенных палитр смайликов, а также палитры смайликов iOS.

Redactor не синхронизирует изменения, пока я не добавлю, скажем, пробел или не вызову событие вставки. Затем его подбирают и сохраняют, как и следовало ожидать. Принудительная синхронизация перед отправкой формы, похоже, тоже не подхватывает персонажа (или я делаю это неправильно).

Есть ли какое-то конкретное событие, связанное с вставкой, запускаемой этими палитрами OS X/iOS, или у вас есть какие-то обходные идеи, чтобы Redactor заметил персонажа?

Попробуйте это по http://imperavi.com/redactor/examples/placeholder/; щелкните внутри области ввода текста, вызовите палитру эмодзи, используя -ctrl-space, и щелкните эмодзи, чтобы вставить ее. Заполнитель не исчезает - один из признаков того, что вставка не зарегистрирована.

1 ответ

Событие DOMCharacterDataModified замечает вставку и может использоваться для запуска.redactor('code.sync').

Поэтому я настроил это в качестве прослушивателя событий в initCallback и использую его, когда основная текстовая область, используемая Redactor, кажется пустой; это потому, что даже после синхронизации контент, состоящий исключительно из эмодзи, не обязательно будет синхронизирован в будущем. (Когда текстовая область имеет контент, синхронизация кажется включающей эмодзи).

Другие вопросы по тегам