繁体   English   中英

如何为CKEditor插件添加自定义功能?

[英]How do I add custom functionality to my CKEditor plugin?

我创建了CKEditor插件,其中包含一些标签,并且每个标签上都有一个不同的iframe。 在这些iframe中,表中包含网站上某些内容的标题。 我希望能够单击表格行,并使其插入被单击项的标题。

问题是我不知道如何将这种自定义javascript添加到插件中。 我有plugin.js,它添加​​了用于添加按钮的init函数,该函数在单击时执行命令以添加对话框窗口。 然后在myDialog.js中,我将对话框窗口定义为:

CKEDITOR.dialog.add( 'addLinkDialog', function( editor ) {
  return {
    title: 'Links',
    minWidth: 800,
    minHeight: 600,
    contents: [
      {
        id : 'articlesTab',
        label : Drupal.t('Articles'),
        title : Drupal.t('Articles'),
        elements : [
      /* {
            id : 'articlenid',
            type : 'text',
            label : Drupal.t('Article Node ID')
          }, */
          {
            type : 'html',
            html : '<iframe src="/links/articles?link=1" style="width:900px; height:600px;"></iframe>',
          }
        ]
      },
      {
        id : 'menuTab',
        label : Drupal.t('Menu Items'),
        title : Drupal.t('Menu Items'),
        elements : [
          {
            type : 'html',
            html : '<div>MENU TEST</div>',
          }
        ]
      },
      {
        id : 'videosTab',
        label : Drupal.t('Videos'),
        title : Drupal.t('Videos'),
        elements : [
          {
            type : 'html',
            html : '<div>VIDEOS TEST</div>',
          }
        ]
      }
    ],
    onOk: function() {
      var editor = this.getParentEditor();
      // var content = this.getValueOf( 'articlesTab', 'articlenid' );
      // alert(content);
    }
  };
});

我知道当我单击对话框窗口上的按钮时,我的onOk可以工作,但是我不确定如何从iframe中获取信息,以及类似的功能应该放在哪里(在我的plugin.js或myDialog.js中? )。

我最终不得不制作另一个js文件,并将其包含在iframe页面上,然后在jquery中将parent.document选择器与.find结合使用,以操纵iframe之外的dom元素。

$(".videoUrlInput", parent.document).find('input.cke_dialog_ui_input_text').val(assetUrl);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM