Как я могу обнаружить событие вставки смайликов из средства просмотра символов 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, кажется пустой; это потому, что даже после синхронизации контент, состоящий исключительно из эмодзи, не обязательно будет синхронизирован в будущем. (Когда текстовая область имеет контент, синхронизация кажется включающей эмодзи).