我在JSP页面中定义了以下文本区域:
<textarea id="edit_subtaskstep_notes" name="edit_subtaskstep_notes" rows="15" cols="50"></textarea>
在我的js文件中,我正在设置内容数据:
CKEDITOR.instances.edit_subtaskstep_notes.setData("Hello World");
这成功地将ckeditor文本框设置为在运行时包含“Hello World”但在执行此行之后,在我的输出窗口中抛出以下错误:
Uncaught TypeError: undefined is not a function (14:21:03:488 | error, javascript)
at (anonymous function) (:197:29)
如果删除该行,则错误消失但数据不再设置。因为它“似乎”工作,因为数据设置是CKEditor v4的某种错误?下载自述文件只是说“CKEditor 4”,但链接版本(不会抛出错误)说4.4.7。
我已将代码简化为仍然重现错误的以下单个文件。包含的在线版本摆脱了错误消息。下载的版本会引发错误。我没有以任何方式修改下载包。正如我之前所说,它仍然“有效”,我只是不喜欢错误信息:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script src="js/vendor/jquery-1.11.0.js"></script>
<script src="/ckeditor/ckeditor.js"></script>
<!--<script src="//cdn.ckeditor.com/4.4.7/basic/ckeditor.js"></script>-->
<script>
$(document).ready(function () {
var editInstance = CKEDITOR.replace('editor1');
});
function onClickChangeText() {
CKEDITOR.instances.editor1.setData("Hello World");
}
</script>
</head>
<body>
<textarea name="editor1" rows="10" cols="45"></textarea><br/>
<button onclick="onClickChangeText()">Change Text</button>
</body>
答案 0 :(得分:1)
查看CKeditor下载区域中的快速入门指南,它说将解压缩的软件包放在网站的根目录中。我曾尝试将其放在子目录中并从那里链接到它。我猜测主要的js文件尝试链接到内部需要的其他资源,这可以解释我遇到的部分功能。将它移到根部后,错误就消失了。
答案 1 :(得分:0)
<!DOCTYPE html>
<html lang="en">
<head>
<title>CKEditor Sample</title>
<script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
<script src="https://cdn.ckeditor.com/4.7.3/standard/ckeditor.js"></script>
<script>
var editInstance;
$(document).ready(function () {
editInstance = CKEDITOR.replace('editor1');
});
function onClickChangeText() {
editInstance.setData("Hello World");
}
</script>
</head>
<body>
<textarea name="editor1" rows="10" cols="45"></textarea><br/>
<button onclick="onClickChangeText()">Change Text</button>
</body>
</html>
尝试使用上面的示例代码在所有浏览器中都适用于我。在控制台中找不到任何错误。