javascript - ckeditor getData() 似乎没有正常工作

标签 javascript ckeditor

首先,我会先说我是 javascript 的新手,所以希望这不是一个完整的脸谱问题。话虽如此,当用户点击它时,以下代码应该提醒编辑器的值。

<script type='text/javascript'>
function openEditor(){
html = "Hello World";
config = {
startupFocus : true
};
editor = CKEDITOR.appendTo( 'textBox', config, html );


 if (editor) {
    editor.on('blur', function(event) {
        var ckvalue = CKEDITOR.instances.editor.getData();
        alert(ckvalue);
    });
 }
}
</script>
<html>
<a href='#' onclick='openEditor()'>Open Editor</a><br />
<div id='textBox'></div>
</html>

取而代之的是 google chrome 控制台报告:

“未捕获的类型错误:无法调用未定义的方法‘getData’”

当我改变的时候

var ckvalue = CKEDITOR.instances.editor.getData();

var ckvalue = CKEDITOR.instances.editor1.getData();

它有效。这让我感到困惑,因为我从未声明过 editor1 实例。我希望有更多经验的人可以向我解释为什么 editor1 工作而 editor 不工作。

这是我所说内容的一个工作示例:http://jsfiddle.net/s3aDC/6/

最佳答案

editor是一个JS变量,指向CKEDITOR.instances.editor1。请参阅 editor === CKEDITOR.instances.editor1//true

另外,事件回调是在editor上下文中执行的,所以this指向editor:

editor.on('blur', function(event) {
    var ckvalue = this.getData();
    alert(ckvalue);
});

并且你可以在初始化编辑器的时候定义它:

var editor = CKEDITOR.appendTo( 'textBox', {
    on: {
        blur: function( event ) {
            console.log( this.getData() );
        }
    }
} );

你绝对应该 avoid global variables在你的代码中! ;)

关于javascript - ckeditor getData() 似乎没有正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14062654/

相关文章:

javascript - 如何自动缩进完整的 javascript 项目?

javascript - Closure Compiler 编译的 es6 模块库没有导出符号

javascript - 如何检测 div 中何时出现多行?

javascript - 使用 JavaScript 打开和关闭 CKEditor 4 内联编辑

javascript - 模拟点击还是手动设置模型属性?

javascript - JQUERY 添加图像属性

javascript - 禁用 CKEditor 中的对话框

javascript - 如何像ckEditor一样设计一个菜单Bar

javascript - Chrome 和 Safari 中的 CKEditor 文本区域超出框范围

php - 您没有浏览服务器的权限?