Всем привет! Ребята, дело такое, насобирал код: Код (Text): <div class="div_insert" onclick="insertTag('<span>', '</span>');"> <script> document.onselectionchange = function() { let {anchorNode, anchorOffset, focusNode, focusOffset} = document.getSelection(); let from = `${anchorNode && anchorNode.data}:${anchorOffset}`; let to = `${focusNode && focusNode.data}:${focusOffset}`; console.log(from); console.log(to); }; </script> Этот скрипт обрабатывает выделение текста на странице и в консоль выдает позицию начала и конца текстового курсора. Скрипт работает постоянно. Как сделать, чтобы скрипт запускался при нажатии на div (указан над скриптом) и выполнялся один раз. Для div прописал onclick="insertTag..., но не могу обернуть сам скрипт в эту функцию. Подскажите как это сделать. За ранее благодарю за ответ!
Много интересного и полезного можно сделать, если будет возможность ознакомиться: Браузер: документ, события, интерфейсы (javascript.ru) Так-то событие selectionchange. Привязали его к элементу document. Надо привязать к элементу с классом "div_insert" (querySelector(), или одному из getElementsByClassName()). Привязывать опят-таки можно по-разному. Или через свойство on<event>, или посредством addEventListener(). Подробности - в учебнике по ссылке выше.
Подскажите, как из данного кода из функции вернуть переменные, через return не получается: Код (Text): document.onselectionchange = function() { let {anchorNode, anchorOffset, focusNode, focusOffset} = document.getSelection(); let from = `${anchorNode && anchorNode.data}:${anchorOffset}`; let to = `${focusNode && focusNode.data}:${focusOffset}`; console.log(from); console.log(to); };
Вызывайте другую ф-цию с параметрами from, to, из этой возвращать некуда, она отрабатывает по изменению выбранного текста.