Javascript CKEditor setData()更改内容但引发错误
我在JSP页面中定义了以下文本区域:Javascript CKEditor setData()更改内容但引发错误,javascript,ckeditor,Javascript,Ckeditor,我在JSP页面中定义了以下文本区域: <textarea id="edit_subtaskstep_notes" name="edit_subtaskstep_notes" rows="15" cols="50"></textarea> 这成功地将ckeditor文本框设置为在运行时包含“Hello World”,但执行此行后,在“我的输出”窗口中引发以下错误: Uncaught TypeError: undefined is not a function (14:21
<textarea id="edit_subtaskstep_notes" name="edit_subtaskstep_notes" rows="15" cols="50"></textarea>
这成功地将ckeditor文本框设置为在运行时包含“Hello World”,但执行此行后,在“我的输出”窗口中引发以下错误:
Uncaught TypeError: undefined is not a function (14:21:03:488 | error, javascript)
at (anonymous function) (:197:29)
如果删除该行,错误将消失,但不再设置数据。由于数据已被设置,所以它“似乎”起作用,这是CKEditor v4的某种缺陷吗?下载自述文件只显示“CKEDITOR4”,但链接版本(没有抛出错误)显示为4.4.7
我已经将代码简化为下面的单个文件,该文件仍然会复制错误。include的联机版本将删除错误消息。下载的版本抛出错误。我没有以任何方式修改下载包。正如我之前所说,它仍然“有效”,我只是不喜欢错误消息:
<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>
$(文档).ready(函数(){
var editInstance=CKEDITOR.replace('editor1');
});
函数onClickChangeText(){
CKEDITOR.instances.editor1.setData(“Hello World”);
}
更改文本
查看CKeditor下载区的快速入门指南,它说要将解压后的软件包放在网站的根目录中。我试着把它放在一个子目录中并从那里链接到它。我猜主js文件试图链接到它内部所需的其他资源,这可以解释我所体验到的部分功能。将其移动到根目录后,错误消失。
<!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>
编辑样本
var实例;
$(文档).ready(函数(){
editInstance=CKEDITOR.replace('editor1');
});
函数onClickChangeText(){
setData(“你好世界”);
}
更改文本
用上面的示例代码进行了测试,在所有浏览器中都可以正常工作。控制台中未发现错误。CKEditor的版本是什么?配置?加载的插件列表?复制该问题的示例(即JSFiddle)将是最好的。我不能使用JSFIDLE,因为我认为问题在于他们的可下载包,因为链接到在线版本可以消除抛出的错误消息。它又开始把那个错误强加给我了。如果我包括在线版本,它可以正常工作,但是当我使用他们的Basic下载包时,仍然会出现这个错误。我按指示解压并放入根目录。我仍然不知道,但既然它能工作,我想我会忽略这个错误。所以,也许它只是一个浏览器缓存?你清除了吗?在每次尝试之间,我一直在虔诚地清除缓存。不幸的是,我也一窍不通。我需要看看。重要的问题是在代码中抛出错误的位置。您可以在未统一的版本中尝试。
<!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>