当我尝试加载 ckeditor 时,出现未捕获的类型错误:无法设置未定义的属性“dir”。我正在使用 requireJs 加载 Js 及其依赖项,还使用 gulp 进行压缩。
我的 requireJs 配置文件:
requirejs.config({
baseUrl:"/js",
paths: {
"jquery": "vendors/jquery",
"ckeditorFull":"vendors/ckeditor/ckeditor"
},
shim: {
"ckeditorFull":{
deps:['jquery']
}
}
});
require(["app"],function(App){
App.init();
});
我正在使用 Ckeditor verison 4.9.2 完整版。我在初始化 ckeditor 之前添加了基本路径。
define([
"jquery","ckeditorFull"
],function($){
var ckeditorFull = function()
{
try{
window.CKEDITOR_BASEPATH = '../vendors/ckeditor/';
CKEDITOR.replace( 'summary-ckeditor',{
language: 'en'
});
}
catch(err) {
}
};
var init = function(){
ckeditorFull();
};
return {
init:init,
}
});
然后我尝试运行该应用程序,但在我的控制台上出现以下错误。
Uncaught TypeError: Cannot set property 'dir' of undefined
at Object.d (app.min.js:24250)
at e (app.min.js:24251)
at Array.z (app.min.js:24251)
at y (app.min.js:24251)
at HTMLScriptElement.A.CKEDITOR.env.ie.e.$.onerror
我尝试了所有可能的方法仍然无法解决,请帮帮忙谢谢!
最佳答案
对于其他有此问题的人(因为它在此时的最新版本中仍然存在),如果您在您的解决方案中自行托管了 CKEditor 脚本(例如对于经典的 ASP.NET 应用程序)并且您没有将插件的所有本地化文件放在您的 CKEditor 文件夹中,这可能会导致此问题发生。
例如,我们的 /CKEditor/lang/
文件夹中只有 en.js
文件,当用户同时拥有英语和丹麦语时,就会出现错误他的浏览器语言。 CKEditor 尝试自动将编辑器的语言设置为丹麦语,并尝试加载不存在的 /CKEditor/lang/da.js
文件(导致 404 错误)。将以下内容添加到 config.js 文件为我们解决了问题:
config.language = 'en';
setting config.language确保将编辑器的语言设置为英语,而不是自动检测。
关于javascript - 无法在 ckeditor 中设置未定义的属性 'dir',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51112621/