CKEditor-自动删除空锚

CKEditor-自动删除空锚,ckeditor,Ckeditor,据我所知,CKEditor正在自动删除一个空锚。问题是很多HTML插件都使用空锚,并且在加载页面后将它们存储在JavaScript中 e、 g.如果我喜欢使用AddThis,他们允许我添加下一个代码: <div class="addthis_toolbox addthis_default_style "> <a class="addthis_button_facebook_like" fb:like:layout="button_count"></a>

据我所知,CKEditor正在自动删除一个空锚。问题是很多HTML插件都使用空锚,并且在加载页面后将它们存储在JavaScript中

e、 g.如果我喜欢使用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>
问题是,即使我为a标记添加了一个规则,它仍然不会覆盖CKEditor制定的规则


有没有办法改写规则或用另一种方法解决这个问题?

我想出了一个解决办法。您将需要使用shopify(GemLiquid)的液态代码解析器,这非常容易做到。安装gem后,您可以执行以下操作:

<%= Liquid::Template.parse(your_ckeditor_content).render({
   code_you_want_untouched => %Q{ html code here }
}) %>

由于html代码不再来自CKEditor,因此它不会剥离任何内容。liquid最酷的一点是,您可以使用任意数量的变量,并且可以在变量代码中执行Ruby。

尝试在标记上使用随机名称:

<div class="addthis_toolbox addthis_default_style ">
    <a class="addthis_button_facebook_like" fb:like:layout="button_count" name="at_r"></a>
    <a class="addthis_button_tweet" name="at_t"></a>
    <a class="addthis_button_pinterest_pinit" name="at_p"></a>
    <a class="addthis_counter addthis_pill_style" name="at_c"></a>
</div>

我也遇到了同样的问题,我让它停止删除空标记的唯一方法是将其添加到config.js

config.protectedSource.push(/<a[^>]*><\/a>/g);
enterCKEDITOR.dtd.$removeEmpty.a = 0;
config.protectedSource.push(/]*>/g);
enterCKEDITOR.dtd.$removempty.a=0;

注意:但是,在我的cke中,背景图像不显示在编辑器中。他们工作得很好,就是不出现。我希望这只是一个可以修复的bug。

您能用CKEditor 4.1尝试一下,然后将自动内容过滤设置为true?我已经尝试过这个解决方案,但它没有任何帮助。它保留了“脚本”,但仍然删除了“a”标记。无论如何,谢谢。问题是如何在不更改/编辑代码的情况下添加代码。我知道如何添加它,但使用该系统的客户将不知道如何添加:)。也许您可以添加一个系统,让您的客户可以单击“添加此小部件”,然后为他们插入编辑的代码?这不仅仅是关于添加此小部件,它还涉及用户喜欢插入其网站的任何小部件或外部HTML。它不是静态的,我现在可以知道用户将插入的密码。有时是空标签,有时是不支持的标签。我喜欢的是,即使CKEdtior无法识别标签,它也会停止删除任何空标签。
<div class="addthis_toolbox addthis_default_style ">
    <a class="addthis_button_facebook_like" fb:like:layout="button_count" name="at_r"></a>
    <a class="addthis_button_tweet" name="at_t"></a>
    <a class="addthis_button_pinterest_pinit" name="at_p"></a>
    <a class="addthis_counter addthis_pill_style" name="at_c"></a>
</div>
config.protectedSource.push(/<a[^>]*><\/a>/g);
enterCKEDITOR.dtd.$removeEmpty.a = 0;