Ticket #7755 (closed Bug: wontfix)

Opened 3 years ago

Last modified 3 years ago

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:1 Changed 3 years ago by j.swiderski

  • Status changed from new to pending

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

comment:2 Changed 3 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 3 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 3 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 3 years ago by j.swiderski

  • Status changed from pending to confirmed
  • Version set to 3.1
  1. In replacebycode sample change script to ckeditor_source.js
  2. Load replace by code sample (It's best to do it in FF)
  3. In Firebug, scripts tab, choose \_source\plugins\wysiwygarea\plugin.js
  4. Go to line 1024 and put a break point (code: createIFrame( data );)
  5. 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 3 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 3 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 3 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 3 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 3 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.

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