CKEditor 在 WinJS 框架内什么都不做

CKEditor does nothing inside WinJS framework

我有一个使用 WinJS 制作的网络应用程序。这是一个 single-page 导航风格的应用程序,这意味着它有一个根视图,我在几个不同的 HTML 片段之间导航,这些片段加载到根页面上的 div 中。

无论如何,我正在尝试在其中一个页面上添加富文本编辑器 CKEditor。据我所知,只要加载主 javascript 文件并将我的 div 之一声明为 'content-editable',我应该会显示 CKEditor 弹出窗口。但是,我的 Web 应用程序上没有显示任何内容,我确信 ckeditor javascript 文件正在加载。我在 Chrome 和 Edge 中都试过了。

我已经尝试使用下面的代码手动让 CKEditor 加载可编辑的 div,但它仍然不起作用。 (questionDiv 是我 div 的 ID)

CKEDITOR.disableAutoInline = !0;
CKEDITOR.inline('questionDiv');

我什至尝试使用 textarea 加载经典编辑器,并使用 CKEditor 的 built-in 命令将 textarea 替换为其 iframe。这似乎也没有任何作用。它看起来就像一个文本区域。

有没有人有将 CKEditor 与 WinJS 应用程序集成的经验?我做错了什么?

跟进 相同的代码 运行 在 Firefox 上确实有效,但在 Chrome 和 Edge 中无效。暂时可以在运行这里看到:

https://labsjs.blob.core.windows.net/sdk/LabsJS-1.0.4/labshost.html?lab=https://chemapps.azurewebsites.net/index.html?PostMessageLabHost

编辑器应该是 'Question' 标题下的框。

似乎用于将 html 内容渲染到 div 中的 WinJS.UI.Pages.render 函数做了一些有趣的事情,它不允许 any 我试过的所见即所得编辑器(CKEditor 、TinyMCE、NicEdit)。我什至尝试过仅片段渲染器 WinJS.UI.Fragments.render,它的工作方式相同。

但是,如果您在主 html 页面(直接在浏览器中加载的页面)上使用 div,则可以让编辑器工作。

这意味着我不得不改变我的网络应用程序的工作方式。我无法再在 html 个页面之间切换。我自己的解决方法是使用 Pivot 控件并将我的所有内容放入不同的 PivotItems 中。不是我想使用的 UI,但现在可以使用了。 (我宁愿使用 SplitView)