Есть пример ниже. Как сделать так, чтобы при нажатии Tab вставлялся отступ в тексте (абзац) вместо перехода к следующему элементу страницы?
Ответ
Недавно переделывал для себя подобное из ответа на 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);
}
})
})
Комментариев нет:
Отправить комментарий