强制 TinyMCE 去除数据属性
Force TinyMCE to strip out data- attributes
我正在使用 TinyMCE 插件并将 valid_elements
选项设置为:
"a[href|target:_blank],strong/b,em/i,br,p,ul,ol,li"
即使未列出数据属性,TinyMCE 也不会删除它们。它似乎去除了所有其他未列出的属性,但出于某种原因,数据属性(例如 data-foo="bar"
)是一个例外。我怎样才能让 TinyMCE 去除数据属性?
我正在使用 TinyMCE 版本 3.4.7
我就是这样解决这个问题的。我通过这个函数手动更改了 TinyMCE 由 运行 生成的 HTML:
var stripDataAttributes = function(html) {
var tags = html.match(/(<\/?[\S][^>]*>)/gi);
tags.forEach(function(tag){
html = html.replace(tag, tag.replace(/(data-.+?=".*?")|(data-.+?='.*?')|(data-[a-zA-Z0-9-]+)/g, ''));
});
return html;
};
这是一个 jsbin:https://jsbin.com/lavemi/3/edit?js,console
使用方法如下:
tinyMCE.activeEditor.setContent(
stripDataAttributes(
tinyMCE.activeEditor.getContent()
)
);
我正在使用 TinyMCE 插件并将 valid_elements
选项设置为:
"a[href|target:_blank],strong/b,em/i,br,p,ul,ol,li"
即使未列出数据属性,TinyMCE 也不会删除它们。它似乎去除了所有其他未列出的属性,但出于某种原因,数据属性(例如 data-foo="bar"
)是一个例外。我怎样才能让 TinyMCE 去除数据属性?
我正在使用 TinyMCE 版本 3.4.7
我就是这样解决这个问题的。我通过这个函数手动更改了 TinyMCE 由 运行 生成的 HTML:
var stripDataAttributes = function(html) {
var tags = html.match(/(<\/?[\S][^>]*>)/gi);
tags.forEach(function(tag){
html = html.replace(tag, tag.replace(/(data-.+?=".*?")|(data-.+?='.*?')|(data-[a-zA-Z0-9-]+)/g, ''));
});
return html;
};
这是一个 jsbin:https://jsbin.com/lavemi/3/edit?js,console
使用方法如下:
tinyMCE.activeEditor.setContent(
stripDataAttributes(
tinyMCE.activeEditor.getContent()
)
);