CKEditor:如何从表格单元格中删除p元素?
我开始在我的一个项目中使用CKEditor,我很喜欢它。有一件事我无法理解或发现,那就是如何在另一个元素中禁止一个元素。我不允许p出现在表单元格th或td中 这: 我的CKEditor初始化如下:CKEditor:如何从表格单元格中删除p元素?,ckeditor,filtering,Ckeditor,Filtering,我开始在我的一个项目中使用CKEditor,我很喜欢它。有一件事我无法理解或发现,那就是如何在另一个元素中禁止一个元素。我不允许p出现在表单元格th或td中 这: 我的CKEditor初始化如下: CKEDITOR.replace( 'id_text', { allowedContent: 'table(table); table(table-striped); thead tbody tfoot tr td th;', toolbar: [ ['Source']
CKEDITOR.replace( 'id_text', {
allowedContent: 'table(table); table(table-striped); thead tbody tfoot tr td th;',
toolbar: [
['Source'],
['Format'],
['Table']
]
});
allowedContent属性似乎不处理父子规则。当标记出现在其他元素中时,我如何筛选元素?我找不到内置的CKEditor设置来禁止标记出现在其他标记中。但我确实在和找到了关于CKEditor过滤内容的示例 这些文章和缺少的“disallowContent”设置使我转向了另一个方向:粘贴上的清理+服务器端清理 CKEditor发出诸如、更改等信号。下一个脚本在粘贴时添加一个侦听器。所有出现的Foo都将替换为Bar
CKEDITOR.on('instanceReady', function(ev) {
ev.editor.on('paste', function(evt) {
evt.data.dataValue = evt.data.dataValue.replace( /Foo/g, 'Bar' );
}, 9);
});
我在Django管理站点中使用CKEditor,并提供jQuery。下一个脚本将上述内容与jQuery DOM操作结合起来。每个选定元素都将替换为其自己的内容
var $ = django.jQuery;
CKEDITOR.on("instanceReady", function( ev ) {
ev.editor.on("paste", function( evt ) {
var data = $.parseHTML(evt.data.dataValue);
$( "th p, td p", data).each( function() {
$( this ).replaceWith( $( this ).contents() );
});
evt.data.dataValue = $('<div>').append(data).html();
}, 9);
});
注意:仍然可以通过源模式或格式菜单在表格单元格中插入段落。这些段落没有被禁止或删除。我选择清理数据服务器端
CKEDITOR.replace( 'id_text', {
allowedContent: 'table(table); table(table-striped); thead tbody tfoot tr td th;',
toolbar: [
['Source'],
['Format'],
['Table']
]
});
CKEDITOR.on('instanceReady', function(ev) {
ev.editor.on('paste', function(evt) {
evt.data.dataValue = evt.data.dataValue.replace( /Foo/g, 'Bar' );
}, 9);
});
var $ = django.jQuery;
CKEDITOR.on("instanceReady", function( ev ) {
ev.editor.on("paste", function( evt ) {
var data = $.parseHTML(evt.data.dataValue);
$( "th p, td p", data).each( function() {
$( this ).replaceWith( $( this ).contents() );
});
evt.data.dataValue = $('<div>').append(data).html();
}, 9);
});