Мы используем QuillJS 1.0 Beta. У нас есть текстовый редактор, и пользователь изначально создает контент. Когда они нажимают "Отправить", он извлекает .innerHTML()
из редактора и сохраняет его в нашей базе данных. Затем, если пользователь хочет отредактировать этот контент, мы извлекаем HTML-код из нашей базы данных и используем .pasteHTML()
из Quill API, чтобы вставить его в редактор.
Когда мы вставляем html в редактор, стили текста вставляются нормально, но когда мы включаем изображения, размер изображения устанавливается на естественную высоту / ширину изображения вместо встроенного стиля, который мы установили. По какой-то причине уборщик Quill должен удалить эту укладку. Есть ли параметр, который нужно передать, чтобы избежать этого «чище», поскольку мы передаем прямой html?
Вот некоторые из строк html, которые поступают из БД, выглядят так:
<p class="ql-align-center"><strong class="ql-size-huge" style="color: rgb(255, 255, 255);"> $450 Referral Bonus</strong></p><p class="ql-align-center"><strong class="ql-size-small" style="color: rgb(186, 35, 35);">Phone a friend!</strong></p><p class="ql-align-center"><img width="145" height="140" style="width: 145px; height: 140px;" src="data:image/png;base64,iVBORw0KG
Как видите, стиль есть. Когда я просматриваю модель DOM после того, как Quill вставляет ее в редактор, тег img не имеет ни одного из этих стилей. Любая идея?
Я попытался добавить сопоставитель, который определенным образом интерпретирует тег изображения, но, что бы я ни делал, я не могу получить ширину / высоту, чтобы придерживаться:
quill.editor.clipboard.addMatcher('IMG', function(node, delta) {
let imgWidth = node.width;
let imgHeight = node.height;
var delta2 = new Delta([{
insert: { image: node.src },
attributes: {
width: imgWidth,
height: imgHeight
}
}]);
return delta2;
});