Есть ли способ получить html-строку JavaScript Range Object в W3C-совместимых браузерах?
Например, предположим, что пользователь выбирает следующее: Hello <b>World</b>
Возможнополучить "Hello World" в виде строки, используя метод Range.toString()
.(В Firefox это также возможно с использованием метода document getSelection
.)
Но я не могу найти способ получить внутренний HTML.
После некоторых поисков я обнаружил, что диапазон можно преобразовать в DocumentFragment
объект.
Но DocumentFragments
не имеет свойства innerHTML
(по крайней мере в Firefox; не пробовал Webkitили Opera).
Что мне кажется странным: Казалось бы, очевидно, что должен быть какой-то способ доступа к выбранным элементам.
Я понимаю, что могу создать documentFragment
, добавить фрагмент документак другому элементу, а затем получите innerHTML
этого элемента.
Но этот метод автоматически закроет все открытые теги в области, которую я выберу.
Кроме того, несомненно, существует очевидный «лучший способ», чем его присоединение.в дом, просто чтобы получить его в виде строки.
Итак, как получить строку HTML или Range или DocFrag?