Ticket #298 (closed Bug: fixed)

Opened 7 years ago

Last modified 7 years ago

DIV Tag deleted in IE when h1 is inserted

Reported by: mansoft Owned by:
Priority: Normal Milestone: FCKeditor 2.5 Beta
Component: Core : Styles Version: FCKeditor 2.4.1
Keywords: Cc:

Description (last modified by fredck) (diff)

Just use the demo site:

  1. click "source code"
  2. insert on first position <div id="news"> (just as an example)
  3. insert on last position </div>
  4. switch back to WYSYWIG mode
  5. insert or add somewhere any text, mark it as headline 1 (or 2,3,4...)
  6. if you look at the sourcecode now the DIV tag has been removed (begin and end tag)

The problem only exists for IE (tested on IE 6 - Version 6.0.2900.2180 only)

In FF it works fine (tested on Version 2.0.0.3 only)

Change History

comment:1 Changed 7 years ago by fredck

  • Priority changed from High to Normal
  • Keywords Confirmed added; IE DIV tag deleted removed
  • Description modified (diff)
  • Milestone changed from FCKeditor 2.4.2 to FCKeditor 2.5

comment:2 Changed 7 years ago by martinkou

  • Owner set to martinkou
  • Status changed from new to assigned

comment:3 Changed 7 years ago by martinkou

  • Keywords Discussion added; Confirmed removed

It seems to me that IE's behavior is the correct one, and Firefox's behavior is buggy.

The standard behavior for choosing a format tag ( i.e. <p>, <div>, <h1>, <pre>, etc. ) is to replace the existing format tag. So, say you are inside a <p> block, choosing the "Address" format in the format drop-down menu would replace the <p> block with an <address> block. Same if you're inside an <h3> block and choose to use the "Normal (DIV)" format - the <h3> block is replaced by <div>.

Now if you select the "Headline X" format inside a <div> in Firefox, the <div> stays instead of getting replaced by the <hX> tag. This seems out of place compared to the other format settings' behaviors.

comment:4 Changed 7 years ago by mk@…

Sorry, I don't agree: if you have a source which is: <div id="test"> <p>aaa</p> <p>bbb</p> </div> and you mark the bbb <p> block and choose the h1 format in the drop-down menu it should replace the <p>block with <h1> but it should not remove the surrounding div, because it is valid to have any text inside a div which can have an <h1> tag

comment:5 Changed 7 years ago by martinkou

Oh, I wasn't aware of your problem. If the change format command deletes the <div> tag beyond the nearest format tag, then it's certainly buggy. And yes, I could reproduce the bug with your test case in IE.

I think it would be the most sensible if the format command replaces only the nearest format tag. So, say you have

<div>line 1</div>

and change the format of "line 1" to "Headline 3", then you get:

<h3>line 1</h3>

And, for your test case:

<div id="test"> 
<p>aaa</p> 
<p>bbb</p> 
</div>

changing the format of "aaa" to "Formatted" would give:

<div id="test"> 
<pre>aaa</pre> 
<p>bbb</p> 
</div>

This way, the format command would work the same in IE and Firefox. Also it wouldn't produce surprises by deleting <div> tags two level up, or leaving empty <pre> tags after the current block (which, by the way, is another bug I just found in IE regarding the formatting command).

comment:6 Changed 7 years ago by fredck

  • Owner martinkou deleted
  • Status changed from assigned to new
  • Component changed from General to Core : Styles
  • Keywords Discussion removed

comment:7 Changed 7 years ago by mk@…

Great if you could change the editor to work in that way! I appreciate your fantastic work.

comment:8 Changed 7 years ago by fredck

  • Status changed from new to closed
  • Resolution set to fixed

While testing the SVN version, we are having now the behavior proposed by Martin. I believe it has been introduced with [774] and the recent changes done with [825].

Note: See TracTickets for help on using tickets.
© 2003 – 2012 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy