【发布时间】:2016-12-08 14:00:56
【问题描述】:
我有一个简单的contenteditable,ID 为“editor1”,允许用户输入他们想要的任何文本。我还有一个select 标签,其中包含不同的options,其中每个选项都是不同的字体系列。
我所做的是,当用户单击一个选项时,我调用了一个函数,它将所选文本包装在 span 中并相应地更改其字体系列。不幸的是,它不起作用;有人有可行的解决方案吗? (最好是纯javascript)
HTML:
<select>
<option onselect="usecomicsans()" style="font-family: 'Comic Sans MS'">Comic Sans MS</option>
<option onselect="usearial()" style="font-family: Arial">Arial</option>
</select>
JS:
function usecomicsans(){
{
var selection= window.getSelection().getRangeAt(0);
var selectedText = selection.extractContents();
var span = document.createElement("span");
span.style.fontFamily = "Comic Sans MS";
span.appendChild(selectedText);
selection.insertNode(span)
}
}
function usearial(){
{
var selection= window.getSelection().getRangeAt(0);
var selectedText = selection.extractContents();
var span = document.createElement("span");
span.style.fontFamily = "Arial";
span.appendChild(selectedText);
selection.insertNode(span);
}
}
编辑:我在某处读到,将onclick 与option 一起使用是行不通的;相反,我应该在select 中使用onchange。关于我该如何做这件事的任何想法?
【问题讨论】:
-
在 js 中,连字符的 CSS 属性需要用驼峰式大小写...例如 font-family 变为 fontFamily - 或者您可以使用
.style['font-family']以避免混淆...我假设有开发者工具控制台中没有显示错误 -
改了,还是不行。和onclick有关吗?
-
我假设开发者工具控制台中没有错误
标签: javascript html css fonts