我正在使用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输出它。
所有的帮助都表示赞赏,希望在我变得疯狂之前;)