我今天有同样的任务来扩展这个编辑器的能力。您应该在特殊对象中添加您的属性:我正在使用额外的 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 核心。
希望这可以帮助!