1

我的网站上有 CKEditor。当我将此代码输入源窗口时:

<ul class="active">
   <li>
        <a href="#">
            <img align="" alt="" border="0" src="/media/1.png" /> 
            <h3>Headline</h3>
            <span class="prec">from</span> 
            <span class="price">1</span>
        </a>
   </li>
</ul>

然后当我单击保存时,它会格式化为:

<ul class="active">
    <li>
        <a href="#"><img align="" alt="" border="0" src="/media/1.png" /> </a>
        <h3>
            <a href="#">Headline</a></h3>
        <a href="#"><span class="prec">from</span> <span class="price">1</span> </a></li>
</ul>

是否可以完全关闭代码重新格式化?它还更改了一些其他 html 代码(例如,在页面上闪烁)

有人可以给我一些建议吗?

4

2 回答 2

0

有关于格式化 HTML 输出的文档。CKEDITOR.htmlWriter处理源 HTML 的编写。它的选项在文档中进行了总结。例如,您可以<a>像这样打开内部中断:

writer.setRules( 'a', {breakAfterOpen : true, breakBeforeClose: true} );

这样,您至少应该能够让编辑器不要将所有内容放在锚点中的一行中。

但是,我认为您正在寻找类似的东西,sourceFormatting: none但我怀疑这是否存在。编辑器需要解析您的 HTML 以进行验证及其所见即所得的功能,因此它似乎总是在保存时进行评估,无格式存储并在打开源窗口时重新编写。

另一个问题中,人们尝试(错误)使用protectedSource以使 CKEditor 远离他们的 HTML,但我没有尝试过。

于 2012-07-29T17:36:08.013 回答
0

您的部分问题是您的输入 HTML 无效。<h3>是块级元素;它不能出现在像<a>. 浏览器无法显示这个无效的 HTML,所以它重新格式化它是有效的(通过复制<a>标签),CKEditor 只是顺其自然。

围绕空格和换行符进行了一些额外的重新格式化,但是您看到的大多数更改都与这个语法问题有关。

于 2012-07-29T17:41:48.360 回答