如何防止ckeditor中的块元素?
我想不要让ckeditor接受块元素。 有了阻止输入密钥,我可以这样做,但如果我粘贴一些文本,包括输入密钥或ckeditor中的几个段落。
换句话说,我想要一个带有ckeditor的文本框。
答案 0 :(得分:2)
CKEditor核心开发人员Olek Nowodziński在业余时间对编辑进行了一些攻击,结果就是...... 不会因Enter键或粘贴的多行内容而中断的可修改标头:https://jsfiddle.net/540ckczt/
select m.feed_id,e.event_code,m.meeting_name,e.timestamp_updated,e.event_time,m.country_code,m.category
from event e, meeting m
WHERE m.id = e.meeting_id
AND m.date = '2015-07-29'
AND m.feed_id IN (1,2)
AND m.status ='A'
AND e.off_time IS NOT NULL
AND e.settle_status = 'R'
AND e.settle_status != 'V'
ORDER BY
CASE WHEN m.country_code = 'AU' THEN e.timestamp_updated
CASE WHEN m.country_code <> 'AU' THEN e.event_code
END DESC
注意,此代码的关键部分是ACF过滤掉其余的块标记(var editor = CKEDITOR.inline( 'editor', {
plugins: 'clipboard,floatingspace,toolbar,undo,basicstyles,link',
toolbar: [ [ 'Undo', 'Redo' ], [ 'Bold', 'Italic' ], [ 'Link', 'Unlink' ] ],
// Enter mode ill be set to BR automatically if editor was enabled on some element
// which cannot contain blocks (like <h1 for instance).
// If you want to enable editor on different elements, set BR mode here.
// Read the note below to learn why.
enterMode: CKEDITOR.ENTER_BR,
on: {
instanceReady: function() {
// Remove all "br"s from the data being inputted into the editor.
editor.dataProcessor.dataFilter.addRules( {
elements: {
br: function() {
return false;
}
}
} );
this.editable().on( 'keydown', function( evt ) {
var keystroke = evt.data.getKeystroke();
if ( keystroke == CKEDITOR.SHIFT + 13 || keystroke == 13 ) {
evt.data.preventDefault();
}
} );
}
}
} );
除外)。在上述情况下,ACF在自动模式下工作,由启用的功能配置。由于没有格式下拉列表或任何其他功能创建块,因此不允许使用它们。请阅读Advanced Content Filter指南中的更多内容。
我希望现在可以问:&#34;为什么我们不能配置ACF来过滤掉<br>
?&#34;
答案是ACF必须能够规范化不允许某些内容的块,并且因为CKEditor不支持&#34; no enter&#34;正式模式,它在规范化为<br>
,<p>
或<div>
之间选择。决定是基于输入模式做出的,因此将此类编辑器配置为进入模式BR非常重要。