【问题标题】:How can I get tag name when delete it in CkEditor 3在 CkEditor 3 中删除标签名称时如何获取标签名称
【发布时间】:2014-07-12 08:24:47
【问题描述】:

我在 CKEDITOR 3 中有这样的 DOM

<div style="text-align: center;"> <div class="embed-container"> <img src="http://ducpt1.st.public.editor.vnexpressdev.net/original/images/blank.png" title="Video" /> </div> </div> 当我选择img并删除它时,我如何检查它是img标签???

对不起,我的英语不好!!!

【问题讨论】:

  • 请说明您如何删除它。如果您通过单击它并按删除手动删除它,为什么需要标签名称?这个问题看起来有点像 XY 问题 (meta.stackexchange.com/questions/66377/what-is-the-xy-problem)
  • 我只是选择了它,然后按删除或退格键。我需要知道标签名称才能更改父节点类。谢谢回答
  • 看看这个:stackoverflow.com/questions/7446367/… - 但是,我认为最好的办法是为您的需要创建一个小部件插件。这很难说,取决于您的要求,但我认为这有点太难了,而且肯定有另一种比编辑类定义更简单的方法。例如后处理呢?我不明白您为什么需要更改课程。
  • 我的网站有 div.embed-container 的 CSS(height)。如果我只是删除 img,内容将变为
     
    所以当网站呈现时,它将有空间:(
  • Oleq 的回答似乎是合法的,但我仍然会尝试找到一种解决方法,例如在保存或更改 CSS 结构而不是附加到 CKEditor 系统之前使用 jQuery 对数据进行后处理。

标签: ckeditor


【解决方案1】:

应该是这样的(JSFiddle),但它仍然缺乏对撤消管理器等的支持,所以它不完整:

CKEDITOR.addCss( '.foo { outline: 1px solid red }' );

CKEDITOR.replace( 'editor', {
    allowedContent: true,
    toolbarGroups: [
        { name: 'mode' },
        { name: 'basicstyles' }
    ],
    on: {
        contentDom: function() {     
            var editor = this;

           this.editable().attachListener( editor, 'key', function( evt ) {
               // If not backspace or delete.
               if ( !( evt.data.keyCode in { 8: 1, 46: 1 } ) )
                   return;

               // Get selected element.
               var lastElement = editor.elementPath().lastElement,
                   parent = lastElement.getParent();

               // It that's img, and parent is in DOM, append class.
               if ( lastElement.is( 'img' ) && parent.getParent() )
                   parent.addClass( 'foo' );                                 
           } );
        }
    }
} );

【讨论】:

    【解决方案2】:

    还有一种为其他人做这件事的方法

    `CKEDITOR.on('instanceReady', function (editor) { var edi = editor.editor; edi.on('key', function(event){ if(event.data.keyCode == 8 || event.data.keyCode == 46){ var select_element = event.editor.getSelection().getSelectedElement(); 如果(选择元素){ //select_element 是你删除的元素 } }

    });
    

    }); `

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-13
      • 1970-01-01
      • 1970-01-01
      • 2013-05-02
      • 2021-08-14
      • 2011-11-18
      • 1970-01-01
      • 2015-10-27
      相关资源
      最近更新 更多