WinForms中的CKEditor Dropdown工具栏未注册单击事件

我目前在C#(Framework 3.5)的WinForms的WebBrowser控件中遇到了CKEditor(版本4.4.0)的问题。 我正在使用UIColor和字体大小/系列选项与编辑器 – 当我在IE中加载页面时工作正常。 通过WebBrowser控件,尝试选择颜色或字体(或右键单击剪切/复制/粘贴菜单)时的单击事件永远不会注册。 我注意到,如果我使用键盘选择选项并按Enter键,一切都按预期工作。

ckeditor方面似乎正在发生的事情是它为控件创建一个div,在该div中加载一个iframe并生成HTML,这样你就可以得到一个很好的,丰富的显示,你会选择哪种字体等等。这已加载,WebBrowser控件无法识别该iframe中新创建的HTML,并将其视为单击时不存在。 即如果我点击颜色并且该颜色下有另一个按钮,其他按钮点击事件就会被注册。 有没有办法告诉Web浏览器控件实际上有什么东西 – 或者强制它读取新渲染的代码? 我注意到,当我点击字体或颜色时,Navigating事件也会被触发,但之后它永远不会进入DocumentCompleted / Navigated例程。

虽然我安装了IE11,但我的WinForms应用程序中的Web浏览器控件在IE 9设置下运行(使用FEATURE_BROWSER_EMULATION = 9000)。 我也尝试过使用FEATURE_BROWSER_EMULATION = 11000,也没有成功。

有什么想法在这里做什么?

HTML:

    Editor Test     $(document).ready(function () { $("#uxBody").ckeditor(); for (var i in CKEDITOR.instances) { CKEDITOR.instances[i].on('change', function () { pageIsDirty = true; }); } });    
Correspondence
Subject:
*Body:

CK编辑器配置文件:

 CKEDITOR.editorConfig = function (config) { // Define changes to default configuration here. // For complete reference see: // http://docs.ckeditor.com/#!/api/CKEDITOR.config // The toolbar groups arrangement, optimized for two toolbar rows. config.toolbar = [ { name: 'clipboard', items: ['Cut', 'Copy', 'Paste', '-', 'Undo', 'Redo'] }, { name: 'basicstyles', items: ['Bold', 'Italic', 'Underline', 'Strike', '-', 'Subscript', 'Superscript', '-', 'RemoveFormat'] }, { name: 'links', items: ['Link', 'Unlink'] }, { name: 'insert', items: ['Image', 'Table', 'HorizontalRule', 'SpecialChar'] }, '/', { name: 'paragraph', items: ['NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', '-', 'Blockquote'] }, { name: 'align', items: ['JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock'] }, { name: 'fonts', items: ['Font', 'FontSize', '-', 'TextColor', 'BGColor'] }, { name: 'tools', items: ['Maximize', '-', 'Source'] }, ]; // Set the most common block elements. config.format_tags = 'p;h1;h2;h3;pre'; // Simplify the dialog windows. config.removeDialogTabs = 'image:advanced;link:advanced'; config.width = '600px'; }; 

如果你们想看到其他任何东西,请告诉我。 同样,只有当它在WinForms的WebBrowser控件中时才会出现问题。 通过普通浏览器导航到页面时,一切正常。 再次感谢!

首先,确保正确实现WebBrowserfunction控件。 我发布了一些你可以复制的工作代码:

然后:

  • 在托管CKEditor的网页上使用
  • 检查document.compatMode以确保它是CSS1Compat (而不是BackCompat )。
  • 检查document.documentMode以确保它与IE的实际安装版本匹配。

这将确保CKEditor可以使用底层IE / MSHTML呈现引擎实现的最新和最好的HTML5 / JavaScriptfunction。

完成上述操作后,查看问题是否消失。 以下是CKEditor托管页面的外观:

     CKEditor test