Javascript CKEditor setData()更改内容但引发错误

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

我在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: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>