CKEditor getEditor()错误,如何解决?

时间:2013-09-30 08:27:44

标签: javascript html asp.net ckeditor

<textarea cols="50" id="txt" contenteditable="true" name="editor1" runat="server" rows="10"></textarea>
<script type="text/javascript" src="css-js/ckeditor.js"></script>
<script type="text/javascript">
  CKEDITOR.replace('txt', {                    
  });       
</script>

我在js上犯了这个错误:

  

TypeError:无法调用未定义的方法'getEditor'

6 个答案:

答案 0 :(得分:15)

首先,contenteditable="true"标记在您的情况下完全无效且过时。此类属性与inline instances only相关,并且<textarea>不是(内容)可编辑的,you don't need it

无论如何,(即使有错误)你的代码对我来说就像一个魅力(fiddle)。作为解释,当没有id的元素传递给CKEDITOR.replace()时,会看到您看到的错误,即:

<textarea id="foo"></textarea>
<script type="text/javascript">
     CKEDITOR.replace( 'bar' ); // <textarea> is #foo, error will be thrown
</script>

确保您的DOM有效且调用<textarea>时存在CKEDITOR.replace(工作异步?)。

答案 1 :(得分:3)

使用

CKEDITOR.appendTo( 'txt' ); for DOM elements

CKEDITOR.replace( 'textarea' ); for textarea

好的老兄也试试这个

函数appendTo和replace都位于themedui.js文件中

尝试单独添加,这是链接

http://docs.ckeditor.com/source/ckeditor.html#CKEDITOR

答案 2 :(得分:0)

问题可能包含在其中:

std::bind

尝试将其删除。这样可以解决您的问题

答案 3 :(得分:0)

我遇到了类似的问题,并通过以下操作对其进行了排序;

<script src="/vendor/unisharp/laravel-ckeditor/ckeditor.js"></script>
<script>
    if($("textarea").length > 0){
        CKEDITOR.replace( 'ckeditor' );
    }
</script>

答案 4 :(得分:0)

这是正确的方法(我通过检查django admin找到了此方法)

var textAreaEl = document.getElementById("id_html_txt")
var textAreadData = textAreaEl.dataset.config

var textEditor = CKEDITOR.replace(textAreaEl, textAreadData);
textEditor.insertHtml(textAreaEl)
  • 以上配置适用于模式形式,但也适用于普通形式

答案 5 :(得分:0)

对于香草js

<script src="/vendor/unisharp/laravel-ckeditor/ckeditor.js"></script>
<script>
   if(document.getElementsByTagName('textarea').length > 0){
      CKEDITOR.replace( 'article-ckeditor' ); 
   }
</script>