在自定义模块中,我已经包含了CKEditor
drupal_add_js( 'sites/all/libraries/ckeditor/ckeditor.js',array('weight'=>JS_LIBRARY+1));
drupal_add_js( 'sites/all/libraries/ckeditor/adapters/jquery.js',array('weight'=>JS_LIBRARY+2));
在我的JS中,我现在正在使用
在textarea上创建一个实例jQuery('#myTextArea').ckeditor();
这是有效的,但现在不行。在Firebug中,我看到ckeditor正在尝试访问 config.js ,并且它正在寻找页面的URL。 应该关注http://example.com/sites/all/libraries/ckeditor/。
我无法想象最近可能会破坏它的变化!
我已经尝试将config { basePath: '/sites/all/libraries/ckeditor/' }
传递给ckeditor()
调用但这被忽略了,可能无法在运行时设置它?
任何人都知道我做错了什么,或者如果这是一个错误,是否有解决方法?
答案 0 :(得分:1)
正如我评论的那样,这似乎与编辑器通过Drupal的JS聚合加载时有关
这是一个丑陋的黑客,它对我有用。
编辑sites / all / libraries / ckeditor / ckeditor.js文件,并在压缩的js代码添加之前添加:
window.CKEDITOR_BASEPATH = 'http://example.com/sites/all/libraries/ckeditor/';
然后记住每次升级都要这样做。
PS。信用basepath hint。
答案 1 :(得分:0)
CKEditor(已测试4.4.4)在确定正确的基本路径时出现问题。例如,为实时部署添加cachebreaker或使用聚合名称时。
您可以使用属性的输出轻松地重现该行为:CKEDITOR.basePath
您使用原始ckeditor文件名/ext/ckeditor/ckeditor.js在网站上(假设为http://example.de),路径为/ a / b / c / d:
Website: http://example.de/a/b/c/d
CKeditor: http://example.de/ext/ckeditor/ckeditor.js
console.log(CKEDITOR.basePath); //output: http://example.de/ext/ckeditor/
您在同一个网站上,相同的路径和ckeditor.js已更改:
Website: http://example.de/a/b/c/d
CKeditor: http://example.de/ext/ckeditor/ckeditor-whatever.js
console.log(CKEDITOR.basePath); //output: http://example.de/a/b/c/
通常,JavaScript控制台会显示以下错误:
Line 1: Uncaught SyntaxError: Unexpected token <
Uncaught TypeError: Cannot set property 'dir' of undefined
因此,如果更改默认文件名ckeditor.js,则始终需要设置基本路径。