1

我正在尝试将 CKFinder 与 CKEEditor 4.4.7 集成,并在页面加载时出现以下错误:

TypeError: f.config is undefined  
ckfinder.js (line 6, col 12104)
...;var p=o.indexOf('?')!== -1?'&':'?';f.config.filebrowserBrowseUrl=o;f.config...
                                           ^^^^^^^^

这是示例页面:

    <script type='text/JavaScript' src='/includes/static/js/ckeditor/ckeditor.js'></script>
    <script type='text/JavaScript' src='/includes/static/js/ckfinder/ckfinder.js'></script>
    <p>entry box

    <form action='test.php' method='post'>
        <p>

            <textarea class='ckeditor' id='citation' name='citation'>citation</textarea>
            <script>
                CKEDITOR.replace( 'citation', {
                    uiColor: '#FFF6DA',
                    allowedContent: true,
                    filebrowserBrowseUrl: '/includes/static/js/ckfinder/ckfinder.html',
                    filebrowserImageBrowseUrl: '/includes/static/js/ckfinder/ckfinder.html?type=Images',
                    filebrowserFlashBrowseUrl: '/includes/static/js/ckfinder/ckfinder.html?type=Flash',
                    filebrowserUploadUrl: '/includes/static/js/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files',
                    filebrowserImageUploadUrl: '/includes/static/js/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images',
                    filebrowserFlashUploadUrl: '/includes/static/js/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash',                          

                     height:100 
                });

                CKEDITOR.instances['citation'].on('instanceReady', function() {
                    // Output self-closing tags the HTML4 way, like <br>.
                    this.dataProcessor.writer.selfClosingEnd = '>';


                });                 

                CKFinder.setupCKEditor( 'citation', '/includes/static/js/ckfinder/' );

            </script>
        <input type='submit'>
    </form>

上传按钮没有被创建大概是因为上面的 f.config 错误: 在此处输入图像描述

这是ckeditor/config.js:

CKEDITOR.editorConfig = function( config ) {

    // The default plugins included in the basic setup define some buttons that
    // are not needed in a basic editor. They are removed here.
    config.removeButtons = 'Cut,Copy,Paste,Undo,Redo,Anchor,Underline,Strike,Subscript,Superscript';

    config.extraPlugins = 'justify,onchange';

    // Dialog windows are also simplified.
    config.removeDialogTabs = 'link:advanced';

    config.disableNativeSpellChecker = false;

};

和未修改的 ckfinder/config.js:

CKFinder.customConfig = function( config )
{
        // Define changes to default configuration here. For example:
        // config.skin = 'v1';
        // config.language = 'fr';
};

什么可能导致 f.config 错误?

4

1 回答 1

1

CKFinder.setupCKEditor需要一个实例,而不是编辑器的 id。

采用:

CKFinder.setupCKEditor( CKEDITOR.instances['citation'], '/includes/static/js/ckfinder/' );

或者只是将 null 作为第一个参数传递。有关更多信息,请查看http://docs.cksource.com/CKFinder_2.x/Developers_Guide/PHP/CKEditor_Integration

于 2015-04-24T19:41:07.360 回答