
На изображении выше я выбрал фразу «макрос сам», которая начинается с индекса 140 и заканчивается индексом 155.
(Индексы рассчитываются с помощью .outerHTML родительского элемента (div, содержащий весь текст) )
Теперь, здесь, на втором изображении, вы можете видеть, что span (часть, которая создает голубая подсветка на снимке экрана HTML) размещена не там, где должна быть. Также обратите внимание на цифры в левом верхнем углу. Начальный индекс тот же, а конечный индекс — это просто конечный индекс из первого изображения + длина <span class="cha... ...50">
Как я получаю индексы: Со стороны javascript: (как на первом рисунке)
start_index = parent_element.html().indexOf(selection[0].outerHTML) - 33; // already have a large arbitrary offset, but I'd prefer to know why the indexes aren't lined up.
end_index = start_index + html.length;
Эти индексы передаются на сервер rails, где он должен вставлять промежутки в текст, но индексы не соответствуют расположению выделения промежутка в HTML.
Итак, мой вопрос: как мне получить точный индекс?
innerHTMLиouterHTML), не обязательно точно соответствует эквивалентному исходному HTML, отправленному сервером. В таком случае попытки сделать это таким образом бесполезны. - person Tim Down   schedule 09.11.2011