加载页面时ckeditor.replace不工作但从控制台执行时工作正常

时间:2014-04-08 04:42:24

标签: ckeditor

我在web应用程序中使用ckeditor,当我在html模板中添加了ckeditor.replace代码时,我收到错误“Uncaught TypeError:无法调用未定义的方法'getEditor'”。如果我支持CKEDITOR.replace('id_taskDetails'),则在同一页面上;在控制台中,我看到了所有的按钮。

顺便说一句,我收到警报。

我从这里尝试了解决方案:Inline CKEditor with toolbar on generated code

这会停止错误,但仍然没有工具栏。

我错过了什么?

<script>
    alert('foo');
    CKEDITOR.replace('id_taskDetails');
</script>
<div id="content">
<form action="/createTask/Test1/" enctype="multipart/form-data" method="post" class="basic-grey">
<p><label for="id_taskName">Task Name:</label> <input id="id_taskName" maxlength="64"       name="taskName" type="text" /></p>
<p><label for="id_taskDetails">Details:</label> <textarea cols="60" id="id_taskDetails"  name="taskDetails" rows="40">
</textarea></p>
<input type="submit" class="button" name="save" value="Next">
</form>

2 个答案:

答案 0 :(得分:0)

在我做对了之前,我需要在StackOverflow上发布一个问题。

我使用了jquery加载函数来确保在调用ckeditor replace调用之前完全加载了页面,现在它工作正常。

<script>
$(window).load(function () {
CKEDITOR.replace('id_taskDetails');
});
</script>

答案 1 :(得分:0)

当您尝试替换的元素存在时,必须执行

CKEDITOR.replace之后

<p><label for="id_taskDetails">Details:</label> <textarea cols="60" id="id_taskDetails"  name="taskDetails" rows="40">
</textarea></p>
<script>
    CKEDITOR.replace('id_taskDetails');
</script>