Ticket #7755 (closed Bug: wontfix)
WYSIWYG: missing closing body tag in generated HTML
| Reported by: | arne | Owned by: | |
|---|---|---|---|
| Priority: | Normal | Milestone: | |
| Component: | General | Version: | 3.1 |
| Keywords: | Cc: |
Description
Closing body tag is missing for both full page mode and non-full page mode in the generated HTML that is loaded in the iframe.
CK version : 3.5.3
Change History
comment:2 Changed 2 years ago by arne
Yes, I can.
In the Wysiwyg plugin, in the loadData method, a call is made to create the iframe with the data to load.
createIFrame( data );
The data sent to the createIFrame method doesn't not include a closing body tag.
comment:3 Changed 2 years ago by j.swiderski
So far I did not manage to reproduce it.
Could you tell me one more thing - in what situation are you getting this error?
Is it when you load CKEditor , add or remove iframe from it or you are loading CKEditor with iframe within it? What are the exact steps to reproduce the issue?
comment:4 Changed 2 years ago by arne
If you replace the expression
createIFrame( data );
in the wysiwyg plugin file with
console.log(data); createIFrame( data );
you will see that the HTML produced has no closing body tag.
The current code does not produce an error for us, because the browser fixes the HTML, but it is nontheless invalid HTML that gets inserted into the iframe.
comment:5 Changed 2 years ago by j.swiderski
- Status changed from pending to confirmed
- Version set to 3.1
- In replacebycode sample change script to ckeditor_source.js
- Load replace by code sample (It's best to do it in FF)
- In Firebug, scripts tab, choose \_source\plugins\wysiwygarea\plugin.js
- Go to line 1024 and put a break point (code: createIFrame( data );)
- Examine object data. you will see that it ids missing closing body tag.
This has occured for the first time in CKEditor 3.1
comment:6 Changed 2 years ago by fredck
- Status changed from confirmed to pending
@arne, can you please exemplify the problem that this issue is causing you?
comment:7 Changed 2 years ago by arne
As stated in my previous comment, there are no known errors that I am aware of regarding this. The browser closes the tag, but I thought I should bring it to your attention that the HTML injected into the iframe is in fact invalid HTML.
comment:8 Changed 2 years ago by alfonsoml
It isn't invalid HTML, the closing tag for the body element is optional (everybody can understand that when the document finishes the body is closed): http://stackoverflow.com/questions/3008593/html-include-or-exclude-optional-closing-tags
In fact even the start tag is optional, look here: http://josephscott.org/archives/2008/12/minimum-html-5-document/
comment:9 Changed 2 years ago by arne
Using the default CKEditor Doctype specified in the config.js file, W3C validator does not validate the following HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> <title></title> </head> <body>
comment:10 Changed 2 years ago by fredck
- Status changed from pending to closed
- Resolution set to wontfix
Ok gentlemen... the data loaded in the editor iframe is instrumental and is not aimed to be validated. The important thing here is the data outputted by the editor.
We don't need to change this. I think it's intentional, just to have less code.

Could you explain in more detail what exactly do you mean? Perhaps provide us with a test case and sample file?