CKEditor setData()更改内容但抛出错误

时间:2015-05-07 19:51:35

标签: javascript ckeditor

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

2 个答案:

答案 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>

尝试使用上面的示例代码在所有浏览器中都适用于我。在控制台中找不到任何错误。