Хорошо, я не могу быть единственной с этой проблемой, которая, кажется, продолжается вечно.
Мы используем браузерные html-редакторы (несколько разных) - у каждого свойКнопка «вставить из слова», которая отлично работает.
Однако многие из наших пользователей просто вставляют текст непосредственно в область дизайна.Для нас это приводит к концу света - иногда он ломает javascript или другие вещи, которые слишком многочисленны, чтобы упоминать.
Итак, я решил написать простую функцию, которая ищет содержимоеисходный код, и если он обнаружит какие-либо плохие символы, связанные с вставкой слова Microsoft, отбросить совпадение «это похоже на вставку мс слова».В настоящее время это выглядит так:
// detect potentially bad characters - usually from msword paste
function hasInvalidChars ( in_element ) {
var src = $j(in_element).val();
var e = $E(src); // enhanced string
var bad = Array( "mso-list:", "class=\"Mso", "</o:p>", "[if !supportLists]",
"style=\"mso-", "mso-bidi", "“", "”", "<v:shapetype", "<v:path",
"file:///" );
for ( i=0; i< bad.length; i++ ) {
if ( e.contains(bad[i]) ) {
return true;
}
}
return false;
}
Обратите внимание, что если вы попытаетесь запустить код, он не будет работать, потому что (1) я использую jQuery и (2) у меня есть специальный объект ($ E)это добавляет кучу вещей в строку, одна из которых является функцией 'contains ()', но вы понимаете, что она делает.
Я ищу элементы массива, которые принадлежатмассив bad [].Я подготовил предварительный список (который может или не может быть хорошей отправной точкой), но я спрашиваю вас экспертов там - пожалуйста - вы можете сказать мне, какие символы или фразы вы бы здесь?На данный момент, если бы я мог поймать 80% проблем, я был бы в восторге.
Спасибо.