如果我创建一个CKEditor(4.3.1)实例然后在jquery ui对话框中显示它,则编辑器内容字段为空白,不可编辑,并且与编辑器菜单的任何交互都在控制台中显示js错误:
Uncaught TypeError: Cannot call method 'getSelection' of undefined
关于SO,有几个类似的问题。 This几乎完全相同,除了针对早期版本的CKEditor(3.x.x)报告此问题。使用4.3.1时没有一个解决方法表明成功。
问题似乎是在创建对话框之前创建编辑器。如果我在创建实例之前创建对话框,那么它可以正常工作。我宁愿不在对话后实例化编辑器;是否还有另一种方法可以实现这一目标?
Javascript(jqery.ui 1.10.2,jquery 1.9.0,CKEditor标准包4.3.1):
$(document).ready(function () {
CKEDITOR.replace('editor1');
$('#opendialog').on('click', function () {
$("#dialog" ).dialog();
});
});
HTML:
<body>
<button id="opendialog">Open Dialog</button>
<div id="dialog" style="display:none">
<textarea id="editor1" class="textarea">some content</textarea>
</div>
</body>
答案 0 :(得分:1)
我在打开jquery对话框后通过实例化CKEditor解决了这个问题。
可能会有所帮助