Всё работает (выдели три раза):
<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. Ну и я бы на тему этой фичи не заморачивался, хром так не умеет и не собирается вроде.