Opened 17 years ago
Closed 17 years ago
#298 closed Bug (fixed)
DIV Tag deleted in IE when h1 is inserted
Reported by: | Kerbetz | Owned by: | |
---|---|---|---|
Priority: | Normal | Milestone: | FCKeditor 2.5 Beta |
Component: | Core : Styles | Version: | FCKeditor 2.4.1 |
Keywords: | Cc: |
Description (last modified by )
Just use the demo site:
- click "source code"
- insert on first position <div id="news"> (just as an example)
- insert on last position </div>
- switch back to WYSYWIG mode
- insert or add somewhere any text, mark it as headline 1 (or 2,3,4...)
- 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 (8)
comment:1 Changed 17 years ago by
Description: | modified (diff) |
---|---|
Keywords: | Confirmed added; IE DIV tag deleted removed |
Milestone: | FCKeditor 2.4.2 → FCKeditor 2.5 |
Priority: | High → Normal |
comment:2 Changed 17 years ago by
Owner: | set to Martin Kou |
---|---|
Status: | new → assigned |
comment:3 Changed 17 years ago by
Keywords: | Discussion added; Confirmed removed |
---|
comment:4 Changed 17 years ago by
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 17 years ago by
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 17 years ago by
Component: | General → Core : Styles |
---|---|
Keywords: | Discussion removed |
Owner: | Martin Kou deleted |
Status: | assigned → new |
comment:7 Changed 17 years ago by
Great if you could change the editor to work in that way! I appreciate your fantastic work.
comment:8 Changed 17 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
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].
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.