Не может получить выделение текста при наличии нескольких тегов

Поэтому я пытаюсь выделить текст, выбрав его и нажав кнопку (помеченный как выделенный текст).

Это его реализация:

http://jsbin.com/uzILUro/1

Часть html, которая имеет несколько тегов, не получает выбранных.

то есть. попробуйте выбрать приведенный ниже абзац и выделите его, нажав кнопку.

"The remainder is r when p is divided by k" means p = kq + r; the integer q is called the quotient. For instance, "The remainder is 1 when 7 is divided by 3" means 7 = 3·2 + 1. Dividing both sides of p = kq + r by k gives the following alternative form p/k = q + r/k.

Все остальные работы, кроме вышеуказанного.

Ответ 1

Вы можете использовать window.find() в большинстве браузеров, хотя в будущем он может быть удален из браузеров (Mozilla, WebKit). Вот ответ об этом:

fooobar.com/questions/21921/...

Ответ 2

Основная проблема заключается в том, что вы используете var searchText = document.getSelection().toString(), который не учитывает открывающие и закрывающие теги внутри вашего выбора. Вместо этого вы должны попробовать использовать searchText = newNode.innerHTML

Внесите эти изменения в вашу функцию getSelectedText, и вы должны быть золотыми. Однако некоторые дополнительные изменения могут потребоваться для IE.