我有一个文本区域和一个按钮。点击该按钮,我将textarea转换为ckeditor。 我的附加要求是,点击其他按钮时,必须将ckeditor转换回textarea。 我的代码:
<textarea name="editor"></textarea>
<input type="button" value="click" onclick="CreateEditor('editor')" />
<script type="text/javascript">
function CreateEditor(name) {
var editor = CKEDITOR.instances[name];
if (editor) { editor.destroy(true); }
CKEDITOR.replace(name, {
toolbarStartupExpanded: false,
autoGrow_onStartup: true
});
if (CKEDITOR.env.webkit) {
CKEDITOR.on("instanceReady", function (e) {
document.getElementsByClassName("cke_wysiwyg_frame cke_reset")[0].contentDocument.body.parentNode.contentEditable = "true";
if (typeof FocusedElement !== 'undefined') {
FocusedElement = e.editor.name;
}
});
}
}
</script>
我怎样才能实现这个目标?
答案 0 :(得分:1)
如果是更常见的用例 - 要求从CKEditor(而不是文本)获取HTML代码,请使用editor.getData()。有关详细信息,请参阅documentation。
答案 1 :(得分:1)
你在自己的代码中有这个:
function DestroyEditor(name) {
var editor = CKEDITOR.instances[name];
if (editor) { editor.destroy(true); }
}
答案 2 :(得分:0)
以下代码行应该为您提供CKEditor
中的平面文本var text = CKEDITOR.instances.editor.document.getBody().getText();
现在,您必须删除CKEDitor,因为这是代码行
CKEDITOR.instances.editor.element.remove()
现在,您可以将<textarea name="editor"></textarea>
添加到您的dom,再次为其指定文字,如
$("textarea[name=editor]").value = text;