javascript - 使用javascript更改字体大小

标签 javascript html css fonts

下面的代码添加了<font size="x">$text</font>到所见即所得编辑器的文本区域:

/**
* Set Size Context
*/
this.set_size_context = function(sizestate)
{
    if (this.buttons['fontsize'])
    {
        if (typeof sizestate == 'undefined')
        {
            sizestate = this.editdoc.queryCommandValue('fontsize');
        }
        switch (sizestate)
        {
            case null:
            case '':
            {
                if (is_moz)
                {
                    sizestate = this.translate_fontsize(this.editdoc.body.style.fontSize);
                }
            }
            break;
        }
        if (sizestate != this.sizestate)
        {
            this.sizestate = sizestate;
            var i;

            if (this.popupmode)
            {
                for (i in this.sizeoptions)
                {
                    if (YAHOO.lang.hasOwnProperty(this.sizeoptions, i))
                    {
                        this.sizeoptions[i].style.display = (i == this.sizestate ? '' : 'none');
                    }
                }
            }
            else
            {
                for (i = 0; i < this.buttons['fontsize'].options.length; i++)
                {
                    if (this.buttons['fontsize'].options[i].value == this.sizestate)
                    {
                        this.buttons['fontsize'].selectedIndex = i;
                        break;
                    }
                }
            }
        }
    }
};

我替换了<font size带有 <span style="font-size 的标签PHP 端的标签和除字体大小下拉菜单之外的所有内容都在工作,编辑器仍在添加 <font size当我从列表中选择字体大小时。 (在发布或预览消息时,它已正确转换为 <span style="font-size)。

问题是,上面的代码如何生成<font size标签以及如何将其替换为 <span style="font-size

以下是JS中字体大小的其他相关部分:

this.build_fontsize_popup = function(obj, menu)
{
    for (var n in sizeoptions)
    {
        if (YAHOO.lang.hasOwnProperty(sizeoptions, n))
        {
            var option = document.createElement('div');
            option.innerHTML = '<span style="font-size:' + sizeoptions[n] + '">' + sizeoptions[n] + '</span>'; 
            option.className = 'osize';
            option.style.textAlign = 'center';
            option.title = sizeoptions[n];
            option.cmd = obj.cmd;
            option.controlkey = obj.id;
            option.editorid = this.editorid;
            option.onmouseover = option.onmouseout = option.onmouseup = option.onmousedown = vB_Text_Editor_Events.prototype.menuoption_onmouseevent;
            option.onclick = vB_Text_Editor_Events.prototype.formatting_option_onclick;
            menu.appendChild(option);
        }
    }
}

this.translate_fontsize = function(csssize)
{
    switch (csssize)
    {
        case '15px':
        case '12px': return 1;
        case '15px': return 2;
        case '18px': return 3;
        case '21px': return 4;
        case '24px': return 5;
        case '27px': return 6;
        case '30px': return 7;
        default:     return '';
    }
}

这是完整的 JS 文件:https://jsfiddle.net/07ttt9a7/

最佳答案

遍历完整代码,您需要修复

case 'fontname':
            {
                this.wrap_tags('font', argument);
                return;
            }

使用'span'而不是'font'

修改以

开头的函数
this.wrap_tags = function(tagname, useoption, selection)
{

关于javascript - 使用javascript更改字体大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29875095/

相关文章:

javascript - 将字符串注入(inject)到 asp.net mvc View 上的 javascript 中

javascript - JavaScript中的多语言警报消息

html - 在我的标题 div 中准确地居中输入

javascript - 单击链接时显示和隐藏段落

css - 学习构建 tumblr 主题,无法集中注意力——实际上只是把事情搞得一团糟

javascript - jQuery foreach 复选框在 tr > 第一个 td 中选中

javascript - 将文本区域符号限制为可见部分

javascript - IE 11 不支持音频播放?

javascript - 当状态改变时,React-typing-animation 不会重新渲染

html - 产品着陆页测试套件问题 : video and sticky navbar elements Free Code Camp