我有一小部分HTML代码存储在数据库中。我想列出所有这些名称(它们的名称),然后在onClick事件中,将实际的html代码粘贴到textarea(内容区域)中。
我设法在第二个TAB中列出了这些小表的标题(由于它们的整体名称)(理想情况下,将有三个选项卡显示不同的表,所以我想也很重要): / p>
// Definition of the Second dialog tab (page).
{
id: 'tab-tab2',
label: 'Tables - various html',
elements: [
{
// Another text field for the abbr element id.
type: 'html',
html: '<div id=main-container></div>',
onLoad: function(element) {
jQuery.ajax({
url: '/tabletemplate/tabletemplates/',
success: function (data) {
var tables = data.tables;
for (var i = 0; i < tables.length; i++) {
$('#main-container').append(
'<div class="html_box" style="border: 1px solid red; margin: 5px;">' +
tables[i][1] +
'</div>'
);
}
},
});
}
}
]
}
现在,我想将 tables[i][2]
的内容粘贴到当前CKEditor实例的文本区域中。
我创建了一个基本上可以做到这一点的函数:
editor.insertHTML(html);
,并在onClick (onClick = 'editor.my_function(tables[i][2])')
上被调用,但是我的控制台不断返回未定义的此-n-错误。
有什么主意吗?
S O L U T I O N
基于输入:
我想出了以下代码,正是我想要实现的:
elements: [
{
// Another text field for the abbr element id.
type: 'html',
id: 'to_id_jest',
html: '<div id=main-container></div>',
onLoad: function( a ) {
var dlg = this;
jQuery.ajax({
url: '/tabletemplate/tabletemplates/',
success: function (data) {
var tables = data.tables;
//dlg.add('Option 1', '1');
for (var i = 0; i < tables.length; i++) {
(function(i){
$('#main-container').append(
'<div class="html_box" id="my_div_' + i + '">' +
tables[i][1] +
'</div>'
);
CKEDITOR.document.getById( 'my_div_' + i ).on( 'click', function( ) {
var dialog = this.getDialog();
dialog.hide();
dialog._.editor.insertHtml( tables[i][2] );
}, dlg );
})(i);
}
},
});
}
}
]