При выборе блока текста (возможно, охватывающего многие узлы DOM) можно ли извлечь выделенный текст и узлы с помощью Javascript?Получить выделенный текст и выбранные узлы на странице?
Представьте этот HTML код:
<h1>Hello World</h1><p>Hi <b>there!</b></p>
Если пользователь инициировал событие MouseDown, начиная с «Мир ...», а затем MouseUp даже сразу после того, как «там!», Я надеюсь, что он вернется :
Text : { selectedText: "WorldHi there!" },
Nodes: [
{ node: "h1", offset: 6, length: 5 },
{ node: "p", offset: 0, length: 16 },
{ node: "p > b", offset: 0, length: 6 }
]
Я пробовал помещать HTML в текстовое поле, но это только даст мне выбранный текст. Я не пробовал элемент <canvas>
, но это может быть другой вариант.
Если нет JavaScript, возможно ли это, используя расширение Firefox?
что вы пройти parentContainer как г? Я не получил его работу (метод parentContainer) –
Упс. Не очень понятно, но это должен быть диапазон, я исправил имя переменной. Я думал, что он может быть использован следующим образом: var container = parentContainer (getRange()); Это не означает, что он будет работать на 100%. Код предназначен в качестве примера того типа работы, который необходим для этого, и может быть найден желательным. Вы хотите понять API, с которыми имеете дело (см. Ссылки). – Borgar
'parentContainer()' бесполезен: обе ветви не гарантируют возврата одной и той же вещи, потому что метод 'parentElement()' 'TextRange' IE всегда будет возвращать элемент, а 'commonAncestorContainer' может быть текстовым узлом. Кроме того, нет необходимости в обнюхивании браузеров (как это подразумевается при использовании «msie»): вы можете легко обнаружить объекты и методы, которые вам нужны. –