CKEditor:从外部脚本访问insertHtml()方法

时间:2013-08-12 11:57:39

标签: javascript ckeditor

我正在使用CKEditor构建自定义文本编辑器,我想编写自己的JavaScript函数以将HTML插入到CKEditor窗口中。

CKEditor有一个名为editor.insertHtml()的方法,它在文档中光标的位置插入HTML。可以从CKEditor插件中访问此方法,但我更愿意自由地在CKEditor之外编写自己的函数,然后将生成的HTML插入编辑器中。

那么如何访问editor.insertHtml()?我在下面复制了我的代码。我尝试使用CKEDITOR.instances.editor1.insertHtml(),但这不起作用。

这个问题CKEditor editor1.insertHtml() not working for me表明我需要倾听instanceReady事件,但我不知道如何做到这一点,所以我希望得到更详细的解释。谢谢!

<html>
<head>
    <meta charset="utf-8">
    <script src="ckeditor/ckeditor.js"></script>
</head>
<body>
<textarea id="editor1"></textarea>
<script type="text/javascript">
    // Replaces the <textarea id="editor1"> with a CKEditor
    // instance, using default configuration.
    CKEDITOR.replace( 'editor1',
    {
        height:"500", width:"1000"
    });
</script>
<script type="text/javascript">
    CKEDITOR.instances.editor1.insertHtml('<h1>someText</h1>');
</script>

</body>
</html>

1 个答案:

答案 0 :(得分:3)

instanceReady事件:

  

创建CKEDITOR实例,完全初始化并准备就绪时触发   互动。

您可以按如下方式使用它:

CKEDITOR.replace( 'editor1', {
    height: '500', 
    width: '1000',
    on: {
       instanceReady: function() {
           // this is current editor instance
           this.insertHtml( '<h1>someText</h1>' );
       }
    }
} );

要使用实例的API,基本上将代码放在instanceReady回调中。否则,您的代码将在编辑器尚未就绪时执行。