据我了解,CKEditor 会自动删除一个空锚。问题是很多 HTML 插件都使用空锚点,并在页面加载后将它们存储在 JavaScript 中。
例如,如果我喜欢使用 AddThis 他们让我添加下一个代码:
<div class="addthis_toolbox addthis_default_style ">
<a class="addthis_button_facebook_like" fb:like:layout="button_count"></a>
<a class="addthis_button_tweet"></a>
<a class="addthis_button_pinterest_pinit"></a>
<a class="addthis_counter addthis_pill_style"></a>
</div>
在我将显示从 Source 更改为 Design 之后,CKEditor 正在删除所有锚点。
我知道如果我将添加到锚点,CKEditor 不会删除它们,但在我的情况下我不能使用它。
我找到了删除文件中链接的行:/ckeditor/ckeditor_4.0.1_full_source/core/htmldataprocessor.js Lines: 536-540
他们正在添加一个删除任何空锚点的 htmlFilter 规则。现在,我知道我可以编辑 CKEditor 源文件并更改它,但我不喜欢这样做,因为任何时候我要升级一个版本,我都需要使用相同的修复程序,所以我喜欢使用 CKEditor API 修复它。
我找到了如何通过以下方式添加规则:
CKEDITOR.instances['instanceName'].dataProcessor.dataFilter.addRules(
{
elements :
{
a : function( element )
{
//Do what i like to do
}
}
});
问题是,即使我为 A TAG 添加规则,它仍然不会覆盖 CKEditor 制定的规则。
有没有办法覆盖那里的规则或以另一种方式解决这个问题?