Создайте пользовательскую функцию обработки в настройках
Вы на правильном пути, и для этого вам не понадобится плагин.
На самом базовом уровне просто выполните .replace()
в обратном вызове вашего события:
tinyMCE.init({
//...
setup: function (editor) {
editor.onKeyUp.add(function (editor) {
var content = editor.getContent({ format: 'html'}); // Get content in HTML entity encoded format
// RegEx replacements
content = content.replace(/--/g, '—'); // Convert two dashes into —
// Set content of iframe editor with modified string
editor.setContent(content, { format: 'html' });
});
}
});
Но вы также захотите прослушать событие onChange
и, поскольку вы заменяете два символа одним, приведенный выше метод приведет к появлению курсорасмещение позиции не синхронизировано.
Вот лучший способ:
tinyMCE.init({
//...
setup: function (editor) {
var customProcess = function (editor) {
var lastSelection = editor.selection.getBookmark(2, true), // Store last selection for later restoration
content = editor.getContent({ format: 'html'}); // Get content in HTML entity encoded format
// RegEx replacements
content = content.replace(/--/g, '—'); // Convert two dashes into —
// Set content of iframe editor with modified string
editor.setContent(content, { format: 'html' });
// Restore selection
editor.selection.moveToBookmark(lastSelection);
};
// Listen for change event
editor.onChange.add(customProcess);
// Listen for key up event
editor.onKeyUp.add(customProcess);
}
});
См. этот JSFiddle для рабочего примера .
РЕДАКТИРОВАТЬ:
Теперь я вижу, что вы ищете альтернативу onKeyUp
событие.Событие onChange
, вероятно, ваша лучшая альтернатива.Я не знаю других решений для быстрой обработки.