我正在尝试为ckeditor构建一个自定义插件。
我的问题是我创建了一个dialog
窗口,其中包含一个“select
”菜单。我想插入任何用户的项目
选择。
这是我的剧本。
function customTag(editor){
return {
title:'Audio Link',
minWidth : 200,
minHeight : 200,
buttons : [CKEDITOR.dialog.okButton, CKEDITOR.dialog.cancelButton],
onOk: function(){
var id = this.getContentElement('tab', 'menu').getValue();
//not sure what to do to get item1 and item2.
},
contents: [
{
id:'tab',
label: 'test',
elements: [
{
type:'select',
id:'menu',
items: [['item1', 0, 'item2' , 1]],
}
]
}
]
}
}
CKEDITOR.dialog.add('customTag', function(editor){
var ck = new customTag(editor)
return ck;
});
我可以使用var id = this.getContentElement('tab', 'menu').getValue();
var id
0
或1
来获取item1和item2的值,但我还想获得item1
和item2
也是如此。
他们的文档没有说明如何获得它。 http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.dialog.html
我不知道该怎么做。任何人都可以帮我吗?谢谢!
答案 0 :(得分:0)
您以错误的方式定义了选择项目(请参阅docs)。无论如何,使用this.getValue()
并将其与this.items
方法(fiddle)中的commit
进行比较,以找到您想要的任何内容:
CKEDITOR.dialog.add( 'myDialog', function( editor ) {
return {
title: 'My Dialog',
onOk: function() {
this.commitContent();
},
contents: [
{
id: 'tab1',
label: 'First Tab',
title: 'First Tab',
elements: [
{
type:'select',
id:'menu',
label: 'My select',
// This is the correct way of defining items.
items: [
[ 'foo', 5 ],
[ 'bar', 6 ]
],
commit: function() {
// Combine value with items to retrieve anything you want.
console.log( this.getValue(), this.items );
}
}
]
}
]
};
} );