假设我有一个 block 标记:
<div class="block">
<a href="/">
<div class="divInside"></div>
<img src="/bla" />
<p>Parargraph</p>
</a>
</div>
<强> HTML5 :声明<a>
元素“可以包裹整个段落、列表、表格等,甚至整个部分,只要其中没有交互式内容(例如按钮或其他链接)”。
那么我这里的内容是完全有效的,不是吗?为什么 ckeditor 不断重新格式化我的源代码,例如上面的内容,一旦我在富编辑器和源代码模式之间进行更改,就会执行以下操作:
<div class="block">
<div class="divInside">
</div>
<a href="/"><img src="/bla" /> </a>
<p>
<a href="/">Parargraph</a>
</p>
<a href="/"> </a>
</div>
我对它对空 div 的作用没有任何问题,但对 anchor 的作用却非常烦人。
有办法禁用此功能吗?
最佳答案
对于 future 遇到同样问题的人,我确实提出了一个解决方案,但我对此并不太满意,因为应该有一个选项,因为它完全有效<强> HTML5
在您的 config.js
中文件中,添加以下配置设置:
config.protectedSource.push(/[\r|\n]|(<a([^*>]+>)|<\/a>)/g);
这是正则表达式工作的演示: DEMO
基本上我们在这里所做的就是:
- 查找新行
\r
- 查找新行
\n
- 找到任何开放 anchor :
<a
接下来是文本,直到我们到达>
-(<a([^*>]+>)
- 查找结束 anchor 标记
<\/a>
这个正则表达式将停止验证找到的结果,我确信有更好的方法来做到这一点,因为我不是 regexPERT(<-- 但擅长双关语!)
希望这有帮助
关于javascript - 强制 CKEDITOR 停止展开 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24523658/