CKEDITOR-删除筛选器中的标记
对于此示例标记:CKEDITOR-删除筛选器中的标记,ckeditor,Ckeditor,对于此示例标记: <p>Hello <span class='blah'>John</span>, how are you?</p> 以下是我的示例代码,用于调用: var filter = new CKEDITOR.htmlParser.filter(rules); var fragment = CKEDITOR.htmlParser.fragment.fromHtml(text); var writer = new C
<p>Hello <span class='blah'>John</span>, how are you?</p>
以下是我的示例代码,用于调用:
var filter = new CKEDITOR.htmlParser.filter(rules);
var fragment = CKEDITOR.htmlParser.fragment.fromHtml(text);
var writer = new CKEDITOR.htmlParser.basicWriter();
filter.applyTo(fragment);
fragment.writeHtml(writer);
var results = writer.getHtml();
console.log(results);
这里有一个要使其工作,您需要返回
CKEDITOR.htmlParser.text的实例,而不是返回字符串。但有一个更简单的方法:
var rules = {
elements: {
span: function(element) {
if (element.hasClass("blah")) {
delete element.name;
}
}
}
};
瞧!
标记被剥离,但其内容被保留。显然,诀窍是将name和class属性都设置为空字符串。这是你的电话号码。以下是过滤器:
var filter = new CKEDITOR.htmlParser.filter({
elements: {
span: function(element) {
if (element.hasClass("blah")) {
element.name = "";
element.attributes.class = "";
return element;
}
}
}
});
您的代码可以工作,尽管它包含两行不必要的行:)。看看我的答案。
var filter = new CKEDITOR.htmlParser.filter({
elements: {
span: function(element) {
if (element.hasClass("blah")) {
element.name = "";
element.attributes.class = "";
return element;
}
}
}
});