我正在尝试创建一个嵌套元素,使用简化的CKEditor文本字段对话框,但它不会工作

时间:2016-10-05 07:49:54

标签: javascript html ckeditor

我正在使用CKEditor在我的项目中的页面上进行书写。在CKEditor写入的这个区域中,还应该有可能使用标准文本对话框插件(the 4th button in the 2nd row)仅使用值字段插入文本字段。通过使用config.js:

var infoTab = dialogDefinition.getContents( 'info' );
    // remove unwanted input fields
    infoTab.remove( '_cke_saved_name' );
    infoTab.remove( 'size' );
    infoTab.remove( 'maxLength' );
    infoTab.remove( 'type' );

我想通过插入包含文本字段的嵌套元素来修改使用的值字段的onOk函数。

原件:

onOk: function() {
        var a = this.getParentEditor(),
            c = this.textField,
            b = !c;
        b && (c = a.document.createElement("input"), c.setAttribute("type", "text"));
        c = {
            element: c
        };
        b && a.insertElement(c.element);
        this.commitContent(c);
        b || a.getSelection().selectElement(c.element)
    }

修改:

    onOk: function() {
        var a = this.getParentEditor(),
            c = this.textField,
            b = !c,
            additionalElement = a.document.createElement("button");
        additionalElement.setAttribute("onclick", $(this).parent().remove());
        b && (c = a.document.createElement("input"), c.setAttribute("type", "text"));
        c = {
            element: c,
            element2: additionalElement
        };
        b && a.insertHtml("<span>");
        b && a.insertElement(c.element);
        b && a.insertElement(c.element2);
        b && a.insertHtml("</span>");
        this.commitContent(c);
        b || a.getSelection().selectElement(c.element)
    }

我尝试了这种方法,但是在使用它时,span-element不会出现在页面的源代码中。我也尝试使用div-element来打破包含整个输入的p元素。 (在div处的p结束和之后的新结束。&#39; div style =&#34; display:inline&#34;&#39;也不起作用。)目前最成功的方法,仍然没有做我想要的,是使用&#39; a style =&#34;颜色:黑色; text-decoration:none&#34;&#39;,只要我不双击文本字段就可以工作,如果我双击它,则会打开链接对话框而不是文本对话框。 我还尝试添加一个额外的元素:

var wrapper = a.document.createElement("span");
wrapper.append(c);
wrapper.append(additionalElement);

但我无法让CKEditor输出它。

所有的帮助都表示赞赏,希望在我变得疯狂之前;)

0 个答案:

没有答案