<p> тег добавляется во встроенный макрос - PullRequest
2 голосов
/ 07 июня 2011

Я использую Umbraco 4.7.Я создал макрос для бритвы, чтобы вставить номер телефона в мой текстовый редактор.Всякий раз, когда я добавляю макрос в RTE, теги <p> добавляются вокруг макроса автоматически.Я попытался удалить лишние теги <p>, отредактировав html, но как только я нажал на кнопку сохранения, теги <p> были добавлены снова.Я попытался установить этот пакет

, но это не решило мою проблему.Я попытался установить <TidyEditorContent>False</TidyEditorContent> и проверить принудительный_блок: 'p', но ни один из них не мог решить проблему.

Есть ли какие-либо указатели, чтобы решить эту проблему?

Ответы [ 2 ]

1 голос
/ 19 апреля 2013

Это распространенная проблема, и RTE вызывает ряд головных болей для поддержания целостности вашей веб-страницы. Целый "мы должны включать теги параграфа или нет?" Вопрос сложный, так как их можно удалить, вставляя только один абзац текста, но что, если редактор контента решит добавить больше, а вы уберете первый и последний теги P?

Учитывая, что CSS для сайта всегда должен поддерживать все, что вы выберете, лучше всего отредактировать файл конфигурации, чтобы TinyMCE пропустил теги P. Для этого вам нужно отредактировать файл /config/tinyMceConfig.config. Это имеет два интересных раздела в нижней части. содержит разрешенные теги HTML, и, конечно, содержит противоположное.

Если вы посмотрите в список допустимых элементов значений, разделенных запятыми, вы должны увидеть значение # p [id | style | dir | class | align] . Принимая во внимание ИМЕННО , как это отформатировано, вы сможете переместить его в раздел недопустимых элементов. Поместите его после тега font по умолчанию, с запятой перед ним, конечно.

Перезагрузите IIS и попробуйте ввести свой контент в RTE. Когда вы публикуете, а затем просматриваете вывод, вы должны увидеть, что строка в RTE имеет разделенные теги абзаца.

Последний вариант - убрать теги абзаца с вывода. Есть много новых способов сделать это, но для вашей версии Razor я бы использовал что-то вроде:

@Html.Raw(umbraco.library.RemoveFirstParagraphTag(value.ToString()))

Эта идея описана в другой статье StackOverflow .

Удачи, и, пожалуйста, дайте нам знать, если у вас все получится.

0 голосов
/ 14 февраля 2014

используйте этот jquery .....

$('p').each(function() {
    var $this = $(this);
    if($this.html().replace(/\s|&nbsp;/g, '').length == 0)
        $this.remove();
});
...