CKEditor unwanted персонажи
Как я могу отключить CKEditor, чтобы получить меня каждый раз
, когда я не хочу их? Я использую CKEditor с адаптером jQuery.
Я не хочу иметь теги
.
Ответы
Ответ 1
После некоторых исследований я мог бы пролить свет на эту проблему - к сожалению, не существует готового решения.
В CKEditor есть четыре способа, по которым не может быть места без пробелов (кто-нибудь знает больше?):
Сводка: Чтобы избавиться от всех пробелов, вам нужно написать дополнительную функцию, которая очищает ввод пользователя.
Комментарии и дальнейшие предложения очень ценятся! (Я использую ckeditor 3.6.4)
Ответ 2
Существует другой способ, которым может иметь место разрывный символ пробела. Просто введите пробел в конце предложения.
CKEditor скрывает основные объекты HTML вместе с латинскими и греческими объектами.
Добавьте эти параметры конфигурации, чтобы предотвратить это (вы также можете добавить их в свой файл конфигурации):
CKEDITOR.on( 'instanceCreated', function( event ) {
editor.on( 'configLoaded', function() {
editor.config.basicEntities = false;
editor.config.entities_greek = false;
editor.config.entities_latin = false;
editor.config.entities_additional = '';
});
});
Эти параметры будут препятствовать тому, чтобы CKEditor удалял nbsp gt lt amp ' "
другой латинский и греческий символы.
Источники:
http://docs.ckeditor.com/#!/api/CKEDITOR.config
http://docs.ckeditor.com/source/plugin48.html#CKEDITOR-config-cfg-basicEntities
Ответ 3
Try:
config.basicEntities = false;
для меня исправлена проблема.
Ответ 4
в config.js:
CKEDITOR.editorConfig = function( config ) {
config.enterMode = CKEDITOR.ENTER_BR; // <p></p> to <br />
config.entities = false;
config.basicEntities = false;
};
Он работает для меня, после того как вы можете распечатать текст с помощью php: html_entity_decode( $someText )
;
Ответ 5
Я заметил, что некоторые операции редактирования текста, такие как удаление символа (нажатием кнопки Backspace), разделяют отредактированный текст node на два. Пробел пробела в конце такого вновь созданного текста node всегда приводит к
вместо нормального пространства. Я вызываю normalize()
http://www.w3schools.com/jsref/met_node_normalize.asp для изменения элемента после изменения:
CKEDITOR.on('instanceReady', function (ck) {
ck.editor.on("change", function (e) {
var sel = ck.editor.getSelection();
if (sel) {
var selected = sel.getStartElement();
if (selected && selected.$)
sel.getStartElement().$.normalize();
}
});
});
Ответ 6
У меня были те же проблемы с созданием некоторых таблиц. Я видел, что если я создал таблицы с правилом css align="left"
, добавлен <p> </p>
, но если бы я изменил правило css на align="center"
, я смог бы отредактировать абзацы, и они не были добавлены снова.
Ответ 7
Мне уже пришлось играть с config.js, поэтому, чтобы исправить '?' появляясь в сафари, я закончил с 3 строками в config.js
config.fillEmptyBlocks = function (element) {
return true; // DON'T DO ANYTHING!!!!!};
config.entities = false;
config.basicEntities = false;
Ответ 8
Если вы используете PHP, вы можете использовать следующее:
preg_replace("/[\<]p[\>][\s]+ [\<][\/]p[\>]/" , " " , $pre_comment);
Это приведет к удалению: "<p> </p>"
Наслаждайтесь:)
Максвелл
Ответ 9
Добавьте это в свой config.js
config.enterMode = CKEDITOR.ENTER_BR,