Задать вопрос
@TerritoryOfPeace
Изучаю php

Как обрабатывать хэштеги в contenteditable блоках?

Есть блок:
<div class="hashtag-input" contenteditable="true" id="hashtag-input"></div>


С помощью javascript пытаюсь сделать хэштеги:

var input = document.querySelector('.hashtag-input');
input.addEventListener('keydown', function (event) {
  if (event.key === 'Enter' && !event.shiftKey) {
    document.execCommand('insertHTML', false, '<br>');
    event.preventDefault();
  } else {
    var text = this.textContent;
    var formattedText = text.replace(/[\r\n]+/g, '<br>');
    var highlighted = formattedText.replace(/(#\w+)/g, '<span class="hashtag">$1</span>');
    this.innerHTML = highlighted;
    placeCaretAtEnd(this);
  }
});

function placeCaretAtEnd(el) {
  el.focus();
  if (typeof window.getSelection != "undefined" &&
      typeof document.createRange != "undefined"
  ) {
    var range = document.createRange();
    range.selectNodeContents(el);
    range.collapse(false);
    var sel = window.getSelection();
    sel.removeAllRanges();
    sel.addRange(range);
  } else if (typeof document.body.createTextRange != "undefined") {
    var textRange = document.body.createTextRange();
    textRange.moveToElementText(el);
    textRange.collapse(false);
    textRange.select();
  }
}


Но, почему-то, не могу перевести строку( Как это исправить?
  • Вопрос задан
  • 131 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 1
@TerritoryOfPeace Автор вопроса
Изучаю php
Сделать хэштеги уже с помощью PHP.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
zkrvndm
@zkrvndm
Архитектор решений
Попробуй прописать стили, чтобы переносы строки отображались:
.hashtag-input {
    white-space: pre-wrap;
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽
18 дек. 2024, в 17:50
7000 руб./за проект
18 дек. 2024, в 17:26
5000 руб./за проект
18 дек. 2024, в 17:23
1500 руб./за проект