Ctr*_*eat 10 javascript jquery google-chrome ckeditor
我在我的应用程序中使用CK Rich Text Editor.我有一个模态弹出窗口,在其中我有三个选项卡 - 每个选项卡呈现相同的局部视图,其中我有一个字段调用描述这是我使用CK编辑器.当我使用IE 11时,一切都按预期工作,Tabs加载Textarea变成CK编辑框,每次文本区域保持为富文本编辑器时在标签之间导航.但是,当我第一次打开模式框时,我看到Chrome中的奇怪行为,每个选项卡上的描述文本区域都按预期变成了ck编辑器,而我在它们之间的选项卡中每个选项卡都是正确的文本区域.但是在Chrome中如果我关闭模态框并重新启动我在控制台中得到上面的错误?如果我打开模态框并在选项卡之间导航6次,我会出现相同的错误,然后丢失文本区域的功能,作为CK富文本编辑器.有没有人有类似的东西或有可能的解决方案.
我的js文件中的代码如下:
$(document).ready(function () {
var editor = CKEDITOR.instances['Description'];
if (editor) { editor.destroy(true); }
CKEDITOR.replaceAll();
});
Run Code Online (Sandbox Code Playgroud)
在3个选项卡中呈现的局部视图中的cshtml标记如下:
<div class="row">
@Html.LabelFor(model => model.Description)
<div class="col-md-10">
@Html.TextAreaFor(model => model.Description)
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
使用此代码销毁CK编辑器:
try {
CKEDITOR.instances['textareaid'].destroy(true);
} catch (e) { }
CKEDITOR.replace('textareaid');
Run Code Online (Sandbox Code Playgroud)
我已经能够在CKEditor 4.4.4中找到解决方案.
在ckeditor.js(缩小)中,第784行:
a.clearCustomData();
Run Code Online (Sandbox Code Playgroud)
应改为:
if (a) {a.clearCustomData();}
Run Code Online (Sandbox Code Playgroud)
也在第784行:
(d=a.removeCustomData("onResize"))&&d.removeListener();a.remove()
Run Code Online (Sandbox Code Playgroud)
应改为:
if (a){(d=a.removeCustomData("onResize"));if (d){d.removeListener();}a.remove()}
Run Code Online (Sandbox Code Playgroud)
这似乎解决了我的问题,我还将提交ckeditor的错误报告,以便他们也可以修复它.