如何通过requirejs加载ckeditor

Int*_*ist 12 javascript ckeditor requirejs

我有问题试图加载通过requirejs CKEditor的(我试过主要CKEditor的js文件转换成单独的模块,但刚导致所有的地狱冲出重围)等,我现在正在检查,看看是否有一个很这是我错过的简单方法.

我知道requirejs可加载JS正常的脚本,这样也许只是装载ckeditor.js文件(未编辑的,所以它仍然是一个IIFE /自动执行功能) - 会与requirejs或者如果你使用requirejs装载的工作模块,那么整个项目是否需要基于模块?

任何帮助赞赏.

亲切的问候,马克

Tom*_*ton 26

或者,您可以创建RequireJS填充程序以按正确顺序加载内容,并将正确的RequireJS模块名称别名到CKEditor分发文件.

这意味着你的模块仍然声明它依赖于CKEditor,这比它只是通过魔法显示更好.

require.config({
shim: {
    'ckeditor-jquery':{
        deps:['jquery','ckeditor-core']
    }
},
 paths: {
    "jquery": '/javascript/jquery-1.7.1/jquery.min',
    'ckeditor-core':'/javascript/ckeditor-3.6.4/ckeditor',
    'ckeditor-jquery':'/javascript/ckeditor-3.6.4/adapters/jquery'
}
});
Run Code Online (Sandbox Code Playgroud)

然后在一个模块中你可以依赖ckeditor-jquery(或者ckeditor-core,如果你不需要jQuery集成)并且知道它将可用:

require(
[
    "jquery",
    "ckeditor-jquery"
],
function( _jquery_ ) {

    $('#editorContent2').ckeditor({
        customConfig : '',
        skin:'office2003'
    });
}
}
Run Code Online (Sandbox Code Playgroud)


Int*_*ist -2

好吧,看来我在这里回答了我自己的问题。

我没有尝试将 ckeditor 分解为模块,而是使用 RequireJs 来完整加载脚本。

require(['require', 'dependancy-A', 'dependancy-B', 'dependancy-C'], function(require, A, B, C){

    // this = [object DOMWindow]
    // CKEDITOR_BASEPATH is a global variable
    this.CKEDITOR_BASEPATH = '/ckeditor/';

    require(['/ckeditor/ckeditor'], function(){
        // Code to create a new editor instance
    });

});
Run Code Online (Sandbox Code Playgroud)

````

  • 此方法不会将 CKEditor 列为模块的依赖项,也不使用 RequireJS 来加载 CKEditor,而是回退到(一对)JavaScript 标记来加载 CkEditor。这意味着该模块运行时 CKEditor 可能尚未加载。 (7认同)