Я реализую функциональность выделения текста с использованием gwt и elemental2. При прохождении через ChildNodes обработать текстовые узлы для выделения, я сталкиваюсь с ClassCastException при попытке отменить узлы в htmlelement .
Сценарий:
Мне нужно выделить текстовый контент в элементе DOM и его детей. Мой подход включает в себя рекурсивное прохождение через детскийNode.TEXT_NODE vs node.element_node ) и
- Для текстовых узлов: создание выделенных пролетов с использованием documentfragment
- Для элементов: рекурсинг в детские узлы
фрагмент кода: < /p>
private void highlightText(Node parentNode) {
NodeList childNodes = parentNode.childNodes;
for (int i = 0; i < childNodes.length; i++) {
Node node = childNodes.getAt(i);
if (node.nodeType == Node.TEXT_NODE) { // Process text node - THIS WORKS FINE
processTextNode(parentNode, (Text) node);
} else if (node instanceof HTMLElement) { // PROBLEM AREA: This cast sometimes fails
HTMLElement element = (HTMLElement) node; // Recursively process child nodes
if (element.hasChildNodes()) {
highlightText(element);
}
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... -text-high
Мобильная версия