Атрибуты удаляются в коде HTML
Я использую wysihtml5. Когда вы вставляете изображение
<img alt src="src" media_img_id="123" data-title="title" data-author="author" />
Результат
<img alt src="src" />
Правила для img
"img": {
"remove": 0,
"check_attributes": {
"width": "numbers",
"alt": "alt",
"src": "url", // if you compiled master manually then change this from 'url' to 'src'
"height": "numbers",
"media_img_id": "numbers"
},
"add_class": {
"align": "align_img"
}
},
Как сделать так, чтобы атрибуты вообще не удалялись?
1 ответ
Решение
У меня сегодня та же задача расширить возможности этого редактора. Вы должны добавить свои атрибуты в специальный объект: я использую дополнительно bootstrap3-wysihtml5 - https://github.com/schnawel007/bootstrap3-wysihtml5. Объект, который должен быть добавлен с новыми атрибутами для элемента:
var defaultOptions = $.fn.wysihtml5.defaultOptions = {
/../
"img": {
"check_attributes":
{
"width": "numbers",
"alt": "alt",
"data-encid": "alt", <<-here is my custom attribute
"src": "url",
"height": "numbers"
}
},
/../
}
и в wysihtml5.js вы должны добавить условие, в котором ваш атрибут src отличается от классического источника (что ожидал этот плагин) " http://example.png/".
строка 4922:
if (checkAttributes) {
for (attributeName in checkAttributes) {
method = attributeCheckMethods[checkAttributes[attributeName]];
if (!method) {
continue;
}
newAttributeValue = method(_getAttribute(oldNode, attributeName));
if (typeof(newAttributeValue) === "string") {
attributes[attributeName] = newAttributeValue;
}
}
}
заменить:
if (checkAttributes) {
for (attributeName in checkAttributes) {
method = attributeCheckMethods[checkAttributes[attributeName]];
if (!method) {
continue;
}
newAttributeValue = (attributeName == "src" && checkAttributes["data-encid"])
? oldNode.src
: method(_getAttribute(oldNode, attributeName));
if (typeof(newAttributeValue) === "string") {
attributes[attributeName] = newAttributeValue;
}
}
}
Здесь я просто копирую значение атрибута src без проверки через ядро wysihtml5.js.
Надеюсь это поможет!