3

我正在使用 TinyMCE 插件并将valid_elements选项设置为:

"a[href|target:_blank],strong/b,em/i,br,p,ul,ol,li"

即使没有列出 data- 属性,TinyMCE 也不会删除它们。它似乎去掉了所有其他未列出的属性,但出于某种原因,数据属性(例如data-foo="bar")是一个例外。如何让 TinyMCE 去除数据属性?

我正在使用 TinyMCE 3.4.7 版

4

1 回答 1

1

这就是我解决这个问题的方法。我通过此函数运行 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()
  )
);
于 2015-09-11T13:38:20.107 回答