Javascript ckeditor getData()似乎无法正常工作
首先,我会说我是javascript新手,希望这不是一个完整的问题。也就是说,当用户单击编辑器时,下面的代码应该提醒编辑器的值Javascript ckeditor getData()似乎无法正常工作,javascript,ckeditor,Javascript,Ckeditor,首先,我会说我是javascript新手,希望这不是一个完整的问题。也就是说,当用户单击编辑器时,下面的代码应该提醒编辑器的值 <script type='text/javascript'> function openEditor(){ html = "Hello World"; config = { startupFocus : true }; editor = CKEDITOR.appendTo( 'textBox', config, html ); if (editor)
<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>
到
它起作用了。这让我很困惑,因为我从未声明过editor1实例。我希望有更多经验的人能向我解释为什么editor1可以工作而editor1不能
下面是我所说内容的一个工作示例:CKEditor从以下位置获取编辑器名称:
appendTo()
方法创建的,因此CKEditor自动生成名称,即editor1
,然后editor2
,等等。CKEditor.instances
对象包含其名称下的所有编辑器实例,这就是存在CKEditor.instances.editor1
的原因
您已将编辑器实例分配给全局编辑器变量。但这与编辑器名称完全不同——您可以将编辑器实例分配给任意多个变量
顺便说一句,在使用变量之前,应该使用var
语句声明变量。editor
是一个JS变量,指向CKEDITOR.instances.editor1
。请参见editor===CKEDITOR.instances.editor1//true
此外,事件回调在编辑器
上下文中执行,因此此
指向编辑器
:
editor.on('blur', function(event) {
var ckvalue = this.getData();
alert(ckvalue);
});
您可以在初始化编辑器时定义它:
var editor = CKEDITOR.appendTo( 'textBox', {
on: {
blur: function( event ) {
console.log( this.getData() );
}
}
} );
而且你应该在你的代码中 你能发布你的代码或概念证明吗?贴出的数量很少,很难说。看起来您已经在上面添加了代码,这可能会有所帮助。我将行更改为:var ckvalue=this.getData();现在它就像一个符咒。我必须记住不要使用全局变量。感谢您快速而翔实的回复!
editor.on('blur', function(event) {
var ckvalue = this.getData();
alert(ckvalue);
});
var editor = CKEDITOR.appendTo( 'textBox', {
on: {
blur: function( event ) {
console.log( this.getData() );
}
}
} );