plugins - 为CKEditor自定义插件创建伪造的图像

标签 plugins ckeditor

我正在开发用于视频嵌入的插件,当单击插件对话框的“确定”按钮时,我将这段代码放入。

var embedCode = 
    '<iframe title="YouTube video player" class="youtube-player" type="text/html"' +
        width="' + width + '" height="' + height + '" src="http://www.youtube.com/embed/' + textField + '?rel=0"' +
        frameborder="0" width="620" height="200" style="width:' + width + 'px; height:' + height + 'px">' +
    '</iframe>';

this.getParentEditor().insertHtml(embedCode);

现在,在编辑器中双击iframe时,请打开iframe属性对话框,而不是我的插件对话框。

如何为自定义插件开发伪造的图像。

最佳答案

我已经找到了解决方案。
Ckeditor从插件生成的代码中制作假元素。当编辑器加载时,它将代码获取并将其转换为假元素,并且对该假元素进行默认编辑,其代码将在

afterInit : function( editor )
    {

编辑器的功能,并在edior的OK事件中调用
onOk : function()
{
    var embedCode = updatePreview( this,true );
    var newFakeImage = editor.createFakeElement( embedCode, 'cke_audio', 'audio', true  );

伪元素示例的代码如下,我为音频嵌入代码插件创建了代码
afterInit : function( editor )
    {
        function createFakeElement( editor, realElement )
        {
            return editor.createFakeParserElement( realElement, 'cke_audio', 'audio', true );
        }

        var dataProcessor = editor.dataProcessor,
                dataFilter = dataProcessor && dataProcessor.dataFilter;
            if ( dataFilter )
            {
                dataFilter.addRules(
                    {
                        elements :
                        {
                            'div' : function( element )
                            {
                                //alert("here");
                                var attributes = element.attributes;

                                if( attributes.class == 'audio' ){
                                    //alert("here");
                                    return createFakeElement( editor, element );
                                }
                                return null;

                            }
                        }
                    },
                    5);
            }
        }

关于plugins - 为CKEditor自定义插件创建伪造的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6815540/

相关文章:

ios - 如何在我的 AppDelegate.swift 中向 Workmanager 注册 "specific plug-in"?

plugins - 如何最好地使用插件构建和构建 Clojure 应用程序?

file - 如何在命令行中为 maven 发布插件设置排除列表?

eclipse - 如何从在线更新站点创建 Eclipse 更新存档?

jquery - 用jQuery动画显示ckeditor

javascript - 从 CDN 使用时,如何在 CKEditor 上设置插件?

grails - 仅使用HTTP服务器创建Grails存储库?

css - CKEDITOR 不会调整大小

javascript - Vue 3 CKEditor 5 添加插件 CodeBlock 错误重复模块

jquery - 如何将泰米尔语字体添加到ckeditor?