Ok, no puedo ser el único con este problema que parece durar para siempre.Pegando desde MS-Word a cualquier editor de HTML basado en navegador
Utilizamos editores html basados en navegador (unos pocos) - cada uno tiene su propio botón 'pegar de palabra' que funciona muy bien.
Sin embargo, muchos de nuestros usuarios solo pegan directamente desde la palabra en el área de diseño. Para nosotros, esto da como resultado el fin del mundo: a veces rompe javascript u otras cosas demasiado numerosas como para mencionarlas.
Por lo tanto, he decidido escribir una función simple que busca el contenido del código fuente, y si ve algún carácter incorrecto que esté asociado con un microsoft word paste, para devolver una coincidencia de 'esto parece un ms-word paste '. Actualmente, parece que esto:
// 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;
}
Tenga en cuenta que si intenta ejecutar el código, no va a funcionar porque (1) yo uso jQuery y (2) tengo un objeto especial ($ E) que se suma un montón de cosas para una cadena, una de ellas es una función 'contains()', pero se da una idea de lo que está haciendo.
Lo que estoy buscando son los elementos de la matriz que pertenecen a la matriz 'mala []'. He presentado una lista preliminar (que puede o no ser un buen punto de partida), pero les estoy preguntando expertos, por favor. ¿Pueden decirme qué caracteres o frases pondrían aquí? En este punto, si pudiera captar el 80% de los problemas, estaría extático.
Gracias.
CKEditor tiene esta comprobación en su lugar, tal vez eche un vistazo a su fuente, ya que está abierta. –