发布于 2015-08-22 23:57:11 | 524 次阅读 | 评论: 0 | 来源: PHPERZ

5 、 输出格式化(Output Formatting )

CKEditor 提供了强大而又灵活的输出格式化系统。 它使开发人员可以完全控制由编辑器生成的 HTML 代码的样子。此系统可以控制所有 HTML 标记,并且可以给出每种标记不同的结果。
HTML 编写器(HTML Writer)
HTML 编写器插件可以使 CKEditor 生成高级格式化的输出。
CKEDITOR.htmlDataProcessor 类 使 用 "writer" 来 编 写 输 出 数 据 。 因此 , 可以用editor.dataProcessor.writer 属性检索出具体编辑器实例的当前编写器。
通过设置 writer 属性可以配置几种输出格式化选项。下面的例子概括了最常用的几种,给出了其默认值:

var writer = editor.dataProcessor.writer;
// 生一缩进步使用的字符串
writer.indentationChars = '\t';
//自结束标记的方式,就像<br />
writer.selfClosingEnd = ' />';
// 断行所使用的字符串
writer.lineBreakChars = '\n';
// 标记的编写规则
writer.setRules( 'p', {
// 表示在此标记中断行时缩进
indent: true,
//在<p>的开始标记前插入断行符
breakBeforeOpen: true,
//在<p>的开始标记后插入断行符
breakAfterOpen: true,
// 在<p>的结束标记前插入断行符
breakBeforeClose: false,
// 在<p>的结束标记后插入断行符
breakAfterClose: true
});

设置编写器规则

因为编辑器是每个编辑器实例的属性, 并且由于对加载的编写器插件的依赖, 对它进行修改的最好方法是监听 CKEDITOR.instanceReady 事件;这样含义可以安全地假设
 

CKEDITOR.editor.dataProcessor 属性将会被加载, 并准备好可以修改。 下面的代码展示了当生成编辑器实例时使用此方法的例子:
CKEDITOR.replace( 'editor1', {
on: {
instanceReady: function( ev ) {
// Output paragraphs as <p>Text</p>.
this.dataProcessor.writer.setRules( 'p', {
indent: false,
breakBeforeOpen: true,
breakAfterOpen: false,
breakBeforeClose: false,
breakAfterClose: true
});
}
}
});

另一种方法是使用 CKEDITOR 对象,这样所有的编辑器实例会被改变:

CKEDITOR.on( 'instanceReady', function( ev ) {
// Ends self closing tags the HTML4 way, like <br>.
ev.editor.dataProcessor.writer.selfClosingEnd = '>';
});
最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务