Есть ли способ получить рубиновый текст для преобразования в текст HTML, для целей индексации? или как мне получить индекс текста в HTML точно? - PullRequest
4 голосов
/ 09 ноября 2011

enter image description here

На изображении выше я выбрал фразу «макрос сам», которая начинается с индекса 140 и заканчивается индексом 155.
(индексы рассчитываются с помощью .outerHTMLродительского элемента (div, содержащий весь текст))

enter image description here Теперь, здесь, на втором изображении, вы можете видеть этот промежуток (часть, которая создает голубую подсветку на скриншоте 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.

Итак, мой вопрос: как мне получить точный индекс?

1 Ответ

1 голос
/ 30 ноября 2011

Возможно, вам нужна более чистая версия текста для работы (у вас там есть пробел, похоже).Примерно так:

start_index = $.trim(parent_element.text())

На рубиновой стороне вам может понадобиться сделать то же самое, чтобы убедиться, что у вас нет пробелов ни на одном из них.Кроме того, ваши выходные данные показывают некоторые html-сущности (&#39;), поэтому в коде ruby ​​вам может потребоваться убедиться, что вы работаете с индексами строки до того, как специальные символы получат html-кодировку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...