我的网站上有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代码(例如,页面上的flash)
有人可以给我一些建议吗?
答案 0 :(得分:0)
有formatting the HTML output的文档。 CKEDITOR.htmlWriter
处理源HTML的编写。其选项在文档中进行了总结。例如,你可以打开<a>
这样的内容:
writer.setRules( 'a', {breakAfterOpen : true, breakBeforeClose: true} );
这样你至少应该能够让编辑器不要把你所有的东西放在一行中。
但是,我认为您正在寻找类似sourceFormatting: none
的内容,但我怀疑这是否存在。编辑器需要解析您的HTML以进行验证和WYSIWYG功能,因此它似乎始终在保存时进行评估,无格式存储并在打开时在源窗口中重写。
在another question中,人们尝试(误)使用protectedSource
来保持CKEditor的HTML,但我没有尝试过。
答案 1 :(得分:0)
您的部分问题是您的输入HTML无效。 <h3>
是块级元素;它不能出现在像<a>
这样的内联元素中。浏览器无法显示此无效HTML,因此它将其重新格式化为有效(通过复制<a>
标记),并且CKEditor正在进行此操作。
在空格和换行符周围进行了一些额外的重新格式化,但是您看到的大多数更改都与此语法问题有关。