#javascript
#javascript
Вопрос:
Я изо всех сил пытаюсь понять, как справиться с проблемой двойного щелчка по абзацу, дающему один тип диапазона, и выбрать тот же абзац, дающий меньший диапазон.
Проблема в том, что если я дважды щелкну, то конечный контейнер будет выглядеть следующим абзацем, но при выборе вручную конечный контейнер остается тем же абзацем.
Чтобы продемонстрировать это, у меня есть jsfiddle — https://jsfiddle.net/Abeeee/uagt0z28/39 / который использует insertText для ввода текста в положение свертки диапазона;
var range0 = range.cloneRange();
range.collapse(true);
document.execCommand('insertText', false, '!!!START!!!');
sel.removeAllRanges();
sel.addRange(range0);
range0.collapse(false);
document.execCommand('insertText', false, '!!!END!!!');
проблема обнаруживается, когда вы дважды щелкаете по слову в абзаце (который выделяет весь абзац), а затем нажимаете [setRangeText], чтобы увидеть, где, по мнению кода, находятся начальная и конечная точки этого выделения).
Я хочу, чтобы абзац был окружен НАЧАЛЬНЫМ и конечным маркерами слева и справа от первого и последнего слов, как показано здесь …
… но то, что я получаю, это конечный маркер, расположенный рядом со следующим абзацем (и внутри тега < p> для этого пункта), как показано здесь …
Как мне исправить / исправить это?
Комментарии:
1. Если я не ошибаюсь, JS использует конечный пробел при выделении текста
2. Например, трижды щелкните любой ваш текст и вставьте его в консоль… Мой добавил конечный пробел