<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'
答案 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文件中
尝试单独添加,这是链接
答案 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>