NicEditor字体大小从<font size =“1”>标签到<span style =“font-size:8px”> </span> </font>

时间:2012-05-12 05:04:09

标签: javascript textbox text-editor nicedit rich-text-editor

您好我正在使用NicEditor,我希望字体大小以不同的方式工作。右边编辑使用:

<font size='1...7'>the selected text here</font>

我不想成为一个跨度标签,即

<span style='font-size:30px'>the selected text here</span>

以下是下拉列表的代码:

var nicEditorFontSizeSelect = nicEditorSelect.extend({
    sel : {1 : '1&nbsp;(8pt)', 2 : '2&nbsp;(10pt)', 3 : '3&nbsp;(12pt)', 4 : '4&nbsp;(14pt)', 5 : '5&nbsp;(18pt)', 6 : '6&nbsp;(24pt)', 7 : '7&nbsp;(36pt)', 8 : '8&nbsp;(48pt)', 9 : '9&nbsp;(72pt)', 10 : '10&nbsp;90pt)', 11 : '11&nbsp;(100pt)'},
    init : function() {
        this.setDisplay('Font&nbsp;Size...');
        for(itm in this.sel) {
            this.add(itm,'<font size="'+itm+'">'+this.sel[itm]+'</font>');
        }       
    }
});

但我找不到要修改的代码,以便将font替换为textarea中的span标记。

非常欢迎任何建议。

谢谢

1 个答案:

答案 0 :(得分:4)

知道这是一个老问题,但其他人是否需要答案。

请注意,这是非常基础的,可以用于改进,例如它将创建嵌套的。

无论如何,在初始化nicEditor之前添加这个JS代码,创建一个自定义插件:

var nicSelectOptionsCustomFormat = {
    buttons : {
        'fontCustomSize' : {name : __('Font size'), type : 'nicEditorCustomFormatSelect'}
    }
};
var nicEditorCustomFormatSelect = nicEditorSelect.extend({
    sel : {'11px' : '11px', '13px' : '13px', '15px' : '15px', '19px' : '19px', '22px' : '22px'},

    init : function() {
        this.setDisplay('Font size');
        for(itm in this.sel) {
            this.add(itm,'<span style="size:'+itm+'">'+this.sel[itm]+'</span>');
        }
    }

    ,update : function(elm) {
        var newNode = document.createElement('span');
        newNode.style.fontSize = elm;
        var rng = this.ne.selectedInstance.getRng().surroundContents(newNode);
        this.close();
    }
});
nicEditors.registerPlugin(nicPlugin,nicSelectOptionsCustomFormat);

然后在创建编辑器时使用fontCustomSize,例如:

var config = {
    buttonList: ["bold", "italic", "underline","fontCustomSize"]
};
var e = new nicEditor(config);
e.panelInstance("page-description");