下面的代码添加了<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/