gpt4 book ai didi

javascript - 无法获取 CKEditor 的实例

转载 作者:行者123 更新时间:2023-11-29 17:34:48 25 4
gpt4 key购买 nike

我有几个字段需要使用 CKEditor 进行初始化,为此我创建了一个包含 initEditor 方法的辅助类。

下面的方法应该返回初始化的编辑器,但它没有:

window.CKEditorHelper = window.CKEditorHelper || {};

(function (exports) {

exports.initEditor = function (input, myEditor) {
ClassicEditor
.create(document.querySelector(input), {
language: {
ui: 'en'
content: 'en'
}
})
.then(editor => {
myEditor = editor;
});
};

})(window.CKEditorHelper);

调用方式如下:

let editor = null;
CKEditorHelper.initEditor('#description', editor);

所以当我点击一个按钮时:

$('#save').on('click', function(){
console.log(editor.getData());
});

我得到:

Cannot read property 'getData' of null

我做错了什么?

最佳答案

你的代码有一些问题

let editor = null;

let 关键字只在函数范围内定义一个变量,当您在另一个范围(您的点击处理事件)上使用 editor 时,它可能是未定义的

另一条线

myEditor = editor;

这很简单,使对原始 editor 对象的引用将消失

这是我的解决方案

像下面这样改变你初始化编辑器的方式

window.editorInstance = {editor: null};
CKEditorHelper.initEditor('#description', editorInstance);

将您的 CKEditorHelper 更改为

window.CKEditorHelper = window.CKEditorHelper || {};

(function (exports) {

exports.initEditor = function (input, myEditorInstance) {
ClassicEditor
.create(document.querySelector(input), {
language: {
ui: 'en'
content: 'en'
}
})
.then(editor => {
myEditorInstance.editor = editor;
});
};

})(window.CKEditorHelper);

当你想使用你的编辑器时

console.log(editorInstance.editor.getData());

关于javascript - 无法获取 CKEditor 的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57832057/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com