Показать сообщение отдельно
  #2 (permalink)  
Старый 21.09.2022, 19:43
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

Всё работает (выдели три раза):
<body>
Всем привет! Помогите, пожалуйста, гуру JS, бьюсь не первый день, в сети нет информации по этому вопросу...

В общем есть редактируемый DIV, в нем можно набрать текст, в firefox'е при зажатии Ctrl можно выделить несколько областей одновременно и с ними работать... Но вот незадача, когда корректирую один из фрагментов выделенных, остальные выделения отпускаются и мой цикл завершается...

Прошу прощения, что привожу код не в песочнице, а тут, так как песком вообще не пользуюсь...

<script>

document.documentElement.onmouseup = () => {

const pressButton = 'u';
const select = getSelection();

if(select.rangeCount < 3) return;


for(let n = 0; n < select.rangeCount; n++){
let range = select.getRangeAt(n);
 
let newNode = document.createElement(pressButton);
newNode.appendChild(range.cloneContents());
range.insertNode(newNode);
range.setStartAfter(newNode);
range.deleteContents();
}

}
</script>

Заранее всех благодарю...
</body>


Нужно больше деталей где именно проблемы.

Могу предложить сначала положить Range'и в массив, а потом с ним работать, но без конкретики - это гадание.

P.S. Ну и я бы на тему этой фичи не заморачивался, хром так не умеет и не собирается вроде.
__________________
29375, 35
Ответить с цитированием