强制CKEDITOR停止展开块

时间:2014-07-02 05:43:25

标签: javascript jquery html html5 ckeditor

我们说我有一个块标记:

<div class="block">
    <a href="/">
        <div class="divInside"></div>
        <img src="/bla" />
        <p>Parargraph</p>
    </a>
</div>

HTML5 :声明<a>元素&#34;可以包裹整个段落,列表,表格等等,甚至整个部分,因为其中没有互动内容(例如按钮或其他链接)&#34;。

所以我在这里完全有效,不是吗?为什么ckeditor会继续重新格式化我的源代码,例如上面的内容,一旦我在富编辑器和源代码模式之间进行更改,就会执行以下操作:

<div class="block">
    <div class="divInside">
        &nbsp;
    </div>
    <a href="/"><img src="/bla" /> </a>
    <p>
        <a href="/">Parargraph</a>
    </p>
    <a href="/"> </a>
</div>

我对它对空div的作用没有任何问题,但是用锚点做什么是非常烦人的。

有没有办法禁用它?

1 个答案:

答案 0 :(得分:1)

对于未来有同样问题的人来说,我确实提出了一个解决方案,但我并不是很满意,因为它应该有一个选项,因为它的完美有效的 HTML5

config.js文件中,添加以下配置设置:

config.protectedSource.push(/[\r|\n]|(<a([^*>]+>)|<\/a>)/g);

以下是正则表达式的演示: DEMO

基本上我们在这里做的就是:

  1. 查找新行\r
  2. 查找新行\n
  3. 找到任何空缺主题:<a后跟文字,然后我们来到> - (<a([^*>]+>)
  4. 查找关闭锚标记<\/a>
  5. 这个正则表达式将停止对找到的结果进行评估,我确信有更好的方法可以做到这一点,因为我不是regexPERT(&lt; - 擅长双关语!)

    希望这有帮助