Я читал документы DOM, и кажется, что в новом стандарте тип узла для разделов CDATA теперь отсутствует.Узел раздела CDATA устарел в DOM4
Похоже, что mozilla избавился от CDATA_SECTION_NODE
, так как он устарел. В документе DOM теперь говорится, что его исторический. Мой вопрос: если теперь функция nodeType
не обнаруживает CDATA_SECTION_NODE
, как DOM справится с этими тегами? То есть, если бы я должен был написать
<script><![CDATA[ /*Some code with < & and what not */ ]]></script>
то как браузеры справиться с этим, если нет узла для обработки секций CDATA? Он просто читает содержимое и игнорирует строки <!CDATA[
и ]]>
?
Кроме того, есть ли где-нибудь, что объясняет решение избавиться от него?
Попробуйте сами.Создайте элемент, добавьте к нему материал CDATA и повторите его дочерние элементы, проверив тип и значение узла – Ian
@Ian: Я тестировал это в Firefox, кажется, что все внутри '' рассматривается как «фиктивный» комментарий, когда просмотр файла HTML. Удивительно, однако, если я поместил раздел cdata в XML-документ, то при проверке элементов я вижу, что он обнаружил узел раздела cdata. Я не уверен, что javascript скажет об этом узле при чтении XML-файла, который его содержит. Спасибо за совет. – jmlopez
CDATA специфичен для SGML и XML, он недействителен в HTML и никогда не был, поэтому корректное и ожидаемое поведение выглядит как «фиктивный» комментарий, потому что «правильный» комментарий имеет ''. Однако я все еще смущен тем, что именно изменилось. Например, если в новом DOM4 нет CDATA, но тег CDATA все еще существует в XML, то как мы будем обрабатывать данные после того, как Mozilla устареет и удалит поддержку DOM? То есть деревенский ходок, ищущий NodeFilter.SHOW_CDATA_SECTION провалится? Итак, как нам их найти? он работает только сейчас, потому что он еще не устарел/удален. – user314159