如何从嵌套在对话框中的iframe中的ckeditor获取所选元素

时间:2015-12-01 16:33:16

标签: javascript jquery ckeditor

我正在构建一个构建<dl>表的CKEditor 3插件。使用iframedialog插件,我在弹出的ckeditor对话框中创建了一个IFrame。我可以使用任意数量的<dl>元素创建<dt>/<dd>表并进行编辑。但是,这只适用于一个<dl>表,因为当我有多个时,我无法找到哪一个被选中,每个都有自己唯一的ID。

我可以访问plugin.js文件中的选定<dl>表。使用var声明的

按如下方式检索它
onShow: function () {
                var sel = editor.getSelection(),
                    element = sel.getStartElement();

                selectedDL = element.getAscendant('dl', true);
                if (selectedDL) {
                    alert(selectedAccordion.getAttribute('id'));
                }
            },

但我无法弄清楚如何在对话框iframe中获取所选DT的ID。我的插件解决方案基于以下链接:

CKEditor 3.x - Dynamically add UI elements to plugin dialog

1 个答案:

答案 0 :(得分:0)

我通常的解决方案是在页面加载时通过计数器动态生成ID,并使用DOM操作将它们附加到标记。然后,您可以将它们推送到数组,并通过数组索引对它们进行寻址,或者您可以通过唯一ID来解决它们。

var counter=1;
var dlarray = [];

$( "dl" ).each(function( index ) {
  var idname = "element" + counter.toString;
  $(this).attr('id', 'idname');
  dlarray.push(this);
  counter++;
});