Hotfix: CKEditor 3.x and Internet Explorer 11

   —   
We recently discovered a rendering problem between V7’s WYSIWYG editor, CKEditor and Internet Explorer 11. We addressed this problem in hotfix 7.0.66. This blog post contains details about the fix and our future plans to avert similar issues.
Kentico 7 uses CKEditor version 3.6.3. This version of CKEditor is compatible with Internet Explorer 9, but it doesn’t support version 10 and 11, with functionalitiesy either not working or the CKEditor not being displayed. However, you can switch the newer versions of Internet Explorer (IE) to compatibility mode so that it behaves exactly like an older version. This is the how we address the problem in the latest hotfix 7.0.66.

The system now sets the X-UA-Compatible HTTP header to IE=9 when rendering system pages. You can change the IE compatibility value by adding the CMSXUACompatibleValue key to the appSettings section of your web.config. So, if you don’t want to change compatibility mode to IE 9, you can change the value of X-UA-Compatible header via the web.config.

In case you can’t apply latest hotfix you can configure proper HTTP header on IIS level. You can achieve this in web.config.

 <system.webServer>
    <httpProtocol>
      <customHeaders>
        <add name="X-UA-Compatible" value="IE=9"/>
      </customHeaders>
    </httpProtocol>
</system.webServer>


Alternatively, you can the insert HTTP header in the IIS Manager in the Response headers category.

There is one scenario where this fix will not help – on localhost domain. The IE ignores the compatibility header on a localhost domain so you either need to explicitly set compatibility mode (see this KB article) or use a computer name instead of a localhost domain.

Future plans

We definitely want to do two things:
  1. Update CKEditor to version 4.x. This is currently on our internal roadmap for Kentico version 8.
  2. Separate CKEditor from the system and replace it with newer version or different WYSIWYG editor to make it much easier. This is not in the scope of Kentico version 8.

If you have any further questions orfeedback please let us know!
Share this article on   LinkedIn

Dominik Pinter

I'm a fan of cloud computing (primarily Windows Azure) and I really like to dig into web application security. My blog is focused on everything related to Kentico, .NET Framework, Cloud platforms and web application security.

Comments

Dominik Pinter commented on

Hi Emanuele,
version 8 will use iframes. However, I agree with you that getting rid of iframes would be great and we definitely will do that in future. I have added this suggestion to our uservoice:

http://ideas.kentico.com/forums/33767-platform/suggestions/5324861-use-inline-feature-of-ckeditor-instead-of-iframes

Emanuele Firmani commented on

Will you use the inline feature of CKEditor 4? It would be great to avoid iframes, so that editors will see exactly how the text will look like.

Dominik Pinter commented on

Hi Jim,
that is excellent point. Yes, it switches whole website to IE9. If its a problem for you, you just need to tweak configuration little bit. You can send this header for only certain locations. You can enclose the web.config settings with <location path="your desired location">. You can also disable the functionality we have added to hotfix (using the web.config key) and use web.config settings.

Jim Fokkens commented on

Won't the manual configuration change the entire web site experience to IE9? I'm reluctant to force visitors into that. Your post mentions that the hotfix solution changes the header only for system pages. How does that influence RTE in the live site? I'm just trying to assess the consequences of this and later hotfixes on the browser experience of visitors and editors.