Это лучшее решение, чем предлагается здесь, так как оно напрямую получает элемент, на котором можно изменить размер шрифта из выделенного текста.
Как следствие, ему не нужно просматривать DOM, чтобы получить нужный элемент, и не требуется запрещать использование определенного fontSize (7, как предлагается в первом варианте принятогоответ и в других ответах).
function changeFont() {
document.execCommand("fontSize", false, "7");
var fontElements = window.getSelection().anchorNode.parentNode
fontElements.removeAttribute("size");
fontElements.style.fontSize = "30px";
}
В итоге мы просто используем execCommand, чтобы обернуть выделение диапазоном, чтобы при последующем вызове getSelection () выделенный диапазон был родительским.Затем мы просто добавляем стиль fontSize к указанному диапазону.
Здесь, когда мы используем команду fontSize, она будет заключена не в <span>
, а в <font>
.
Но это универсальный метод, который может работать с любой командой execCommand, последняя используется просто как удобный способ для обертывания выбранного содержимого даже среди различных элементов.
Вот живой DEMO