Opened 12 years ago
Closed 12 years ago
#11496 closed Bug (worksforme)
Some SPAN configurations create undesired hidden SPAN blocks
| Reported by: | Ivan Gadea | Owned by: | |
|---|---|---|---|
| Priority: | Normal | Milestone: | |
| Component: | General | Version: | |
| Keywords: | Cc: |
Description
Using the latest nightly build and this config.js file:
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.html or http://ckeditor.com/license
*/
CKEDITOR.editorConfig = function( config ) {
// Define changes to default configuration here.
// For the complete reference:
// http://docs.ckeditor.com/#!/api/CKEDITOR.config
// The toolbar groups arrangement, optimized for a single toolbar row.
config.toolbarGroups = [
{ name: 'document', groups: [ 'mode', 'document', 'doctools' ] },
{ name: 'clipboard', groups: [ 'clipboard', 'undo' ] },
{ name: 'editing', groups: [ 'find', 'selection', 'spellchecker' ] },
{ name: 'forms' },
{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
{ name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align', 'bidi' ] },
{ name: 'links' },
{ name: 'insert' },
{ name: 'styles' },
{ name: 'colors' },
{ name: 'tools' },
{ name: 'others' },
{ name: 'about' }
];
// The default plugins included in the basic setup define some buttons that
// we don't want too have in a basic editor. We remove them here.
// config.removeButtons = 'Cut,Copy,Paste,Undo,Redo,Anchor,Underline,Strike,Subscript,Superscript';
// Let's have it basic on dialogs as well.
config.removeDialogTabs = 'link:advanced';
// new config added by hand (not default)
config.allowedContent = true;
config.tabSpaces = 4;
config.templates_replaceContent = false;
config.enterMode = CKEDITOR.ENTER_BR;
config.autoParagraph = false;
config.fillEmptyBlocks = false;
config.extraPlugins = 'maximize,showblocks';
config.removePlugins = 'devtools';
config.toolbar = 'MyToolbar';
config.toolbar_MyToolbar =
[
[ 'Cut','Copy','Paste','PasteText','PasteFromWord','-','Undo','Redo' ],
[ 'Image','Table','HorizontalRule','Smiley','SpecialChar' ],
[ 'Form', 'Checkbox', 'Radio', 'TextField', 'Textarea', 'Select', 'Button', 'ImageButton', 'HiddenField' ],
[ 'Styles','Format' ],
[ 'Abbr','-', 'Bold','Italic','Strike','-','RemoveFormat' ],
[ 'TextColor','BGColor' ],
[ 'NumberedList','BulletedList','-','Outdent','Indent','-','Blockquote' ],
[ 'Link','Unlink' ],
[ 'input', 'free', 'checkbox', 'radio', 'multiple', 'select', 'upload', 'array', 'imagemap', 'tabs', 'fieldset' ],
[ 'Templates', 'Maximize', 'ShowBlocks', '-', 'Source' ]
];
config.toolbar_Advanced =
[
[ 'Cut','Copy','Paste','PasteText','PasteFromWord','-','Undo','Redo' ],
[ 'Image','Table','HorizontalRule','Smiley','SpecialChar' ],
[ 'Styles','Format' ],
[ 'Abbr','-', 'Bold','Italic','Strike','-','RemoveFormat' ],
[ 'TextColor','BGColor' ],
[ 'NumberedList','BulletedList','-','Outdent','Indent','-','Blockquote' ],
[ 'Link','Unlink' ],
[ 'Maximize', 'ShowBlocks' ]
];
config.toolbar_Basic =
[
[ 'Abbr','-', 'Bold','Italic','Strike','-','RemoveFormat' ],
[ 'NumberedList','BulletedList','-','Outdent','Indent','-','Blockquote' ],
[ 'Cut','Copy','Paste','PasteText','PasteFromWord','-','Undo','Redo' ],
[ 'Link','Unlink' ],
[ 'Maximize' ]
];
CKEDITOR.on( 'instanceReady', function( ev ) {
var nonBlockTags = ['input','label'];
var blockTags = ['div','h1','h2','h3','h4','h5','h6','p','pre','ul','li'];
var rulesBlock = {
indent : true,
breakBeforeOpen : true,
breakAfterOpen : true,
breakBeforeClose : true,
breakAfterClose : true
};
var rulesNonBlock = {
indent : true,
breakBeforeOpen : true,
breakAfterOpen : true,
breakBeforeClose : true,
breakAfterClose : true
};
for (var i=0; i<blockTags.length; i++) {
ev.editor.dataProcessor.writer.setRules( blockTags[i], rulesBlock );
}
for (var i=0; i<nonBlockTags.length; i++) {
ev.editor.dataProcessor.writer.setRules( nonBlockTags[i], rulesNonBlock );
}
ev.editor.dataProcessor.writer.setRules( 'span', {
indent : true,
breakBeforeOpen : true,
breakAfterOpen : true,
breakBeforeClose : true,
breakAfterClose : true
}
);
});
};
Steps to reproduce:
- Go to HTML Source view and Copy & Paste this code:
<div class="former input" title="INFORMACION"> <span class="big horizontal advanced"> <label class="required" for="NOMBRE"> DESCRIPCION </label> <input charset="-_." class="medium username required" id="NOMBRE" maxlength="20" minlength="3" name="NOMBRE" type="text" value="INICIAL" /> </span> </div>
- Click on Source button to go to WYSIWYG view.
- Click on Source button to return to HTML source view again.
You'll see that there is a new hidden SPAN block. If you repeat steps 2 and 3 more hidden SPAN blocks will be generated.
I've found that the problem appears when I make 'true' any of the 'break' settings for the SPAN element. The behaivour is the expected only when all settings are set to false, like here:
ev.editor.dataProcessor.writer.setRules( 'span', {
indent : true,
breakBeforeOpen : false,
breakAfterOpen : false,
breakBeforeClose : false,
breakAfterClose : false
}
);
Change History (2)
comment:1 Changed 12 years ago by
| Keywords: | span html source removed |
|---|---|
| Status: | new → pending |
| Version: | 4.4 (GitHub - major) |
comment:2 Changed 12 years ago by
| Resolution: | → worksforme |
|---|---|
| Status: | pending → closed |
I've test with the latest build and it's solved. Thanks

I cannot reproduce this on latest master. I copied your config and pasted given HTML in the source mode and after switching between modes the data is:
Could you check what additional steps do I need to reproduce it? Or is it still reproducible on latest master?