2015-10-19 5 views
1

Я работаю над небольшим сценарием здесь, используя contenteditable.Размер тумблера/untoggle document.execCommand

Он переключает/отталкивает полужирным шрифтом, подчеркивание, курсив, но я не могу сделать его глупым шрифтом. Он переключает его, а затем он остается таким.

Работа демо: https://jsfiddle.net/zesaj9ck/2/

<button id="toggle_bolt" onclick="document.execCommand('italic');">toggle italic</button> 
<button id="toggle_bolt" onclick="document.execCommand('underline');">toggle underline</button> 
<button id="toggle_bolt" onclick="document.execCommand('fontSize', false, 7);">toggle size</button> 

<div id="wmd-input" contenteditable="true"></div> 

ответ

0

Это не «переключение» или изменения вообще после первого щелчка, потому что каждый щелчок просто устанавливает размер до 7. Размер шрифта не только два состояния, как полужирный, курсивом и подчеркиванием. В приведенном ниже рабочем примере вместо этого вводится заданное значение размера.

Я также рекомендую переместить обработчики кликов на функции, как это было сделано с функцией changeSize. Это создает более четкое разделение проблем и улучшает ремонтопригодность.

function changeSize(increase) { 
 
    var value = parseInt(document.getElementById('size').value, 10) + (increase ? 1 : -1); 
 
    
 
    document.execCommand('fontSize', false, value); 
 
    document.getElementById('size').value = value; 
 
}
#wmd-input { 
 
    width : 500px; 
 
    min-height : 100px; 
 
    border : 2px solid; 
 
}
<button id="toggle_bolt" onclick="document.execCommand('bold');">toggle bolt</button> 
 
<button id="toggle_bolt" onclick="document.execCommand('italic');">toggle italic</button> 
 
<button id="toggle_bolt" onclick="document.execCommand('underline');">toggle underline</button> 
 
<button id="toggle_bolt" onclick="changeSize(true)">Size +</button> 
 
<button id="toggle_bolt" onclick="changeSize(false)">Size -</button> 
 
<input id="size" value="4" readonly /> 
 
<div id="wmd-input" contenteditable="true"></div>

+0

я вижу. Взяв ваш пример, как я могу полностью исключить кнопку для fontSize и просто иметь раскрывающийся список, где я могу просто выбрать размер шрифта? Можно ли это сделать? – VitalSigns

+0

@VitalSigns Конечно, прикрепите событие 'change' на' input' к типу ввода 'number' и запустите' execCommand' внутри обработчика. Я обновлю этот ответ на примере, но вам действительно нужны новые вопросы, если вы хотите продолжить рассмотрение вопроса, выходящего за рамки первоначальной области этого вопроса. –

+0

Я понимаю, что я задаю вопрос, выходящий за рамки моего первоначального вопроса, но так же хорошо, как ваш ответ, было бы нецелесообразно использовать его на веб-сайте. Вы согласны с этим? Мне нужно решение, которое может использовать фактический пользователь. – VitalSigns

Смежные вопросы