Solución:
Basado en la respuesta aceptada por Reinmars y el complemento de Entidades, creé un pequeño complemento con un filtro HTML que elimina los elementos redundantes
entidades. La expresión regular podría mejorarse para adaptarse a otras situaciones, así que edite esta respuesta.
/*
* Remove entities which were inserted ie. when removing a space and
* immediately inputting a space.
*
* NB: We could also set config.basicEntities to false, but this is stongly
* adviced against since this also does not turn ie. < into <.
* @link http://stackoverflow.com/a/16468264/328272
*
* Based on StackOverflow answer.
* @link http://stackoverflow.com/a/14549010/328272
*/
CKEDITOR.plugins.add('removeRedundantNBSP', {
afterInit: function(editor) {
var config = editor.config,
dataProcessor = editor.dataProcessor,
htmlFilter = dataProcessor && dataProcessor.htmlFilter;
if (htmlFilter) {
htmlFilter.addRules({
text: function(text) {
return text.replace(/(w) /g, '$1 ');
}
}, {
applyToAll: true,
excludeNestedEditable: true
});
}
}
});
Estas entidades:
// Base HTML entities.
var htmlbase="nbsp,gt,lt,amp";
Son una excepción. Para deshacerse de ellos, puede configurar basicEntities: false
. Pero como mencionan los documentos, este es un entorno inseguro. Entonces, si solo quieres eliminar
, entonces debería usar expresiones regulares en los datos de salida (por ejemplo, agregando un oyente para #getData) o, si desea ser más preciso, agregue su propia regla a htmlFilter
al igual que entities
plugin hace aquí.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)