contentEditable отступ( tab)

255
09 марта 2017, 23:54

Есть пример ниже. Как сделать так, чтобы при нажатии Tab вставлялся отступ в тексте (абзац) вместо перехода к следующему элементу страницы?

<div class='test' contentEditable='true'>Some text</div>
Answer 1

Недавно переделывал для себя подобное из ответа на EN.SO

let divs = document.getElementsByClassName("test"); 
[].forEach.call(divs, function(item) { 
  item.addEventListener("keydown", function(e) { 
    if (e.keyCode === 9) { 
      e.preventDefault(); 
      let div = this; 
      let selection = div.ownerDocument.defaultView.getSelection(); 
      let range = selection.getRangeAt(0); 
      let tab = document.createTextNode("\u00a0\u00a0\u00a0\u00a0"); 
      range.insertNode(tab); 
      range.setStartAfter(tab); 
      range.setEndAfter(tab); 
      selection.removeAllRanges(); 
      selection.addRange(range); 
    } 
  }) 
})
<div class='test' id="editor" contentEditable='true'> Some text</div>

READ ALSO
javascript letter to digit hex

javascript letter to digit hex

Необходима функция, переводящая в десятичные числа hex буквыA -> 10, F -> 15 и тд

253
Ресайз изображения в canvas? [требует правки]

Ресайз изображения в canvas? [требует правки]

Как можно лучше улучшить качество изображения и разместить по ширине и длине канваса?

202
Якоря в jQuery Cycle, прямые ссылки

Якоря в jQuery Cycle, прямые ссылки

Я использую плагин Cycle для смены страницЦель - возможность переходить на определенный контент внутри страницы (например, Contact Us) по прямой...

218