Мне известно, что я не отвечаю на ваш реальный вопрос, но в случае, если ваша настоящая проблема заключается в мусоре, создаваемом пользователем, который пытается вставить текст из Microsoft Office (например, Word), я бы порекомендовалрассмотрим альтернативное решение.
Сам CLEditor может переключаться между iFrame (режим расширенного текста) и текстовой областью (режим источника).Функциональность «Вставить как текст» использует текстовую область, которая не поддерживает форматированный текст сам по себе, поэтому он не допустит мусорный HTML в первую очередь.
Однако, если редактор находится в режиме форматированного текста, онОчень трудно предотвратить вставку пользователем текста из Word (он может использовать обычную кнопку вставки, нажать CTRL-V или даже использовать контекстное меню правой кнопки мыши, которые представляют собой разные события и которые трудно перехватить с помощью javascript).Так что теперь ущерб уже нанесен;у вас есть грязный HTML внутри вашего редактора.Поэтому вместо того, чтобы пытаться очистить мусор, создаваемый Word, я реализовал следующую проверку (javascript) после сохранения захваченного ввода:
if(clEditorValue && (clEditorValue.indexOf('<!--') !== -1 || clEditorValue.indexOf('mso-ansi-language') !== -1 ) ) {
alert('Unable to process text pasted from Word, please use "Paste as text" or modify your input');
return;
}
Я надеюсь, что этот ответ будет полезен для других людей, пытающихся достичь того же.