6

Редактор Summernote по умолчанию включает режим "жирный" при фокусе на пустом окне редактора:


(источник: scaleengine.net)

Что нужно сделать, чтобы отменить это поведение? Я не нашел явных настроек конфигурации, очевидно, он эту информацию откуда-то берет, но даже подмена document.queryCommandState не помогла. Система целиком висит на опенкарте, который сам по себе кхм-кхм как в части исполнения, так и документации, поэтому проблему сложно оттрейсить.

Summernote вызывается самым обычным способом:

$('textarea').summernote();
Glorfindel
  • 1,187
  • 2
  • 14
  • 19
etki
  • 36,151
  • Минимального фиддла не будет? – Nofate May 12 '15 at 21:58
  • @Nofate Добавил, но он реально минимальный. – etki May 12 '15 at 22:03
  • Лучшая документация - код, угу. Найти код, который выполняется по нажатию этой кнопки, прописать debugger; в этой функции, обновить страницу, проанализировать call stack. – Yura Ivanov May 12 '15 at 22:26
  • @YuraIvanov, я пробовал раскручивать (не через клик-хендлер, правда), и уперся в некоторое количество методов, работу которых не понимаю и не хотел бы тратить время на них (document.queryCommandState, например). – etki May 12 '15 at 22:32
  • А подробнее можно? Скачал архив с главной, открыл пример из /examples/textarea.html, убрал в примере текст из textarea и открыл файл в браузере - никакого жирного выделения нет. Добавил в textarea строку <p><b></b></p> - никакого выделения нет, добавил <p><b>&nbsp;</b></p> - выделение появилось. Может быть у вас содержимое не пустое? Попробуйте воспроизвести на этом (можно через встроенный редактор, но у меня коммент, поэтому только fiddle) – BOPOH May 13 '15 at 03:39
  • @Etki, summernote поставляется в виде плагена|из коробки для CMS OpenCart? – romeo May 13 '15 at 05:10
  • @romeo примерно так. Там нет такого понятия, как плагин, он просто есть внутри, никаких вызовов с заданием ему поведения по умолчанию я не нашел. – etki May 13 '15 at 11:05
  • @BOPOH чуть позже посмотрю, но уверен, что у меня там пустота. Насколько понял, он действительно включает/выключает стили по css, но все, чего я смог добитьсся комментированием найденных строчек - кнопка отключалась, а жирный текст оставался. – etki May 13 '15 at 11:05
  • Дайте ссылку на страничку где можно наблюдать поведение – ReinRaus May 13 '15 at 15:57
  • @ReinRaus конечно же, во время создания тестового примера оказалось, что целевой элемент лежит внутри label, а у label есть правило font-weight:bold, а summernote просто подтягивает стили содержимого. Можете написать ответ о том, что проблема обязательно найдется в процессе создания тестового примера, я его приму. – etki May 15 '15 at 01:28
  • @Etki, сделайте это сами, пожалуйста, если не трудно. Ведь Вы сами разобрались в проблеме. А я Вам плюсик поставлю. – ReinRaus May 15 '15 at 05:15

1 Answers1

5

Проблема оказалась тривиальной: у Summernote нет конфигурации включенных стилей по умолчанию (во всяком случае, я ничего такого не обнаружил), однако он подтягивает стили того элемента, на котором установлен курсор. Textarea (равно как и заменивший ее элемент summernote) лежала внутри label, к которому применялось правило font-weight: bold, на который и срабатывал Summernote. Простого

label * {
    font-weight: normal;
}

хватило для решения проблемы.

Спасибо @ReinRaus за подталкивание меня в нужном направлении.

etki
  • 36,151
  • Что-то у вас решение оказалось страшнее проблемы :) <label> же не просто так жирным делался, а вы взяли и поломали дизайн всех форм на сайте. Лучше вынесите <textarea> за пределы тэга <label>, чтобы стили не применялись там, где не надо. – Pavel Mayorov May 15 '15 at 12:49
  • @PavelMayorov Там очень все плохо в проекте, проще было докинуть правило, чем разгребать верстку. – etki May 16 '15 at 22:43
  • Сделайте тогда отдельное правило именно для Summernote. А то в проекте стенает только хуже. К примеру, label .summernote подойдет. – Pavel Mayorov May 17 '15 at 05:43
  • @PavelMayorov оно через style инжектится только на этой странице. Ну и немного в другом виде, я не помню, какие конкретно элементы там перечислены. – etki May 17 '15 at 07:43