DOM: объектная модель документа в веб-разработке

Dom объектная модель документа. Что такое DOM и зачем он нужен? Документы как деревья узлов

Тема действительно сложная. Но, как говорится, не так страшен чёрт, как его малюют. Вот тут-то самый крепкий орешек достаётся мне: этакая сверхзадача «намалевать» по возможности удобоваримо, но и не совсем примитивно. Пока что все прочитанные мной материалы тяготеют либо к зауми, либо к примитиву.

Что такое DOM

Аббревиатура DOM расшифровывается как Document Object Model (объектная модель документа).

DOM — это программный интерфейс доступа к содержимому HTML, XHTML и XML-документов, то есть представление тэгов и атрибутов HTML, XHTML и XML, а также стилей CSS в виде объектов программирования. С этой моделью работает как JavaScript, так и другие языки web-программирования.

Немного истории

Существует 4 уровня DOM (0, 1, 2 и 3).

Уровень 0 (1996) включал в себя модели DOM , которые существовали до появления уровня 1. В основном это коллекции: document.images, document.forms, document.layers и document.all. Эти модели формально не являются спецификациями DOM , опубликованными W3C . Скорее они представляют информацию о том, что существовало до начала процесса стандартизации.

Уровень 1 (1997) включал также базовые функциональные возможности по обработке XML-документов: многочисленные способы работы с отдельными узлами, работа с инструкциями обработки XML и т.д.

Кроме того, DOM уровня 1 содержит ряд специальных интерфейсов, которые могут обрабатывать отдельные HTML-элементы. Например, можно работать с таблицами HTML, формами, списками выбора и т.д.

В DOM уровня 2 (2002) было добавлено несколько новых возможностей.

Если в DOM уровня 1 отсутствовала поддержка пространств имён, то интерфейсы DOM уровня 2 содержат методы для управления пространствами имён, связанными с требованиями к составлению и обработке XML-документов.

Помимо этого, DOM уровня 2 поддерживает события.

Уровень 2 является текущим уровнем спецификаций DOM , однако W3C рекомендует и некоторые разделы спецификаций уровня 3.

DOM уровня 3 — это рабочий проект спецификации, которая расширяет функциональность DOM уровня 2. Одна из наиболее важных особенностей этой версии спецификации заключается в возможности работать с многочисленными расширениями DOM .

Что означает «программный интерфейс»?

Английское слово interface можно перевести как «область контакта». Компьютер, грубо говоря, понимает только две вещи: пустой бит и заполненный бит. Язык, на котором «говорит» компьютер, можно представить как нескончаемую вереницу нулей и единиц, дающих бесконечное количество различных комбинаций.

Любой программный код — это вразумительная для программиста интерпретация этих «нулей и единиц», с которыми работает компьютер. Таким образом, любой язык программирования является интерфейсом человека и машины.

Браузеры работают так же, как и другие компьютерные приложения. Они интерпретируют в «нули и единицы» коды HTML, XML, CSS, скрипты JavaScript, PHP, Perl и т.д. Для работы с этим многоязычием нужна общая платформа. Этой платформой и является DOM — спецификация, не зависящая от конкретного языка программирования или разметки. Это интерфейс, который можно использовать во многих популярных языках программирования, связанных с созданием web-страниц и способных понимать и интерпретировать объекты DOM .

DOM и браузеры

DOM и JavaScript

В JavaScript вершиной иерархической лестницы объектов DOM , своеобразным «проводником» в этот интерфейс служит объект document , а объекты DOM становятся его свойствами, свойствами его свойств и т.д. Их также называют узлами DOM .

Узлы DOM

В DOM уровня 2 есть 12 типов узлов. За каждым типом узла DOM закреплена константа с уникальным именем. Большинство узлов предназначено для работы с XML . В сборке HTML — JavaScript , которой мы занимаемся, можно использовать только 5 типов. Но и эта «верхушка айсберга» представляет собой весьма «развесистое дерево», которое не охватить за одно-два занятия.

Полный набор констант типов узлов, определённый в спецификации W3C DOM (голубым подсвечены узлы, доступные для HTML — JavaScript ):

Имя константы

Значение

Описание

Node.ELEMENT_NODE

Узел элемента (возвращает корневой элемент документа, для HTML-документов это элемент HTML)

Node.ATTRIBUTE_NODE

Узел атрибута (возвращает атрибут элемента XML- или HTML-документа)

Текстовый узел (#text)

Node.CDATA_SECTION_NODE

Узел секции CDATA (XML: альтернативный синтаксис для отображения символьных данных)

Node.ENTITY_REFERENCE_NODE

Node.ENTITY_NODE

Узел раздела

Node.PROCESSING_INSTRUCTION_NODE

Узел директивы XML

Node.COMMENT_NODE

Узел комментария

Node.DOCUMENT_NODE

Узел документа (основа доступа к содержанию документа и создания его составляющих)

Node.DOCUMENT_TYPE_NODE

Узел типа документа (возвращает тип данного документа, т.е. значение тэга DOCTYPE)

Node.DOCUMENT_FRAGMENT_NODE

Узел фрагмента документа (извлечение части дерева документа, создание нового фрагмента документа, вставка фрагмента в качестве дочернего элемента какого-либо узла и т.п.)

Node.NOTATION_NODE

Узел нотации*

* Нотации — это имена, идентифицирующие формат неанализируемых разделов, формат элементов, имеющих атрибут нотации, или прикладную программу, которой адресована директива. (Непонятно? Мне пока тоже не очень.)

Структура документа в модели DOM

Все объекты документа являются узлами DOM. Рассмотрим элементарный документ:

< title>DOM

«center» > Заголовок

Текст абзаца

DOM: объектная модель документа в веб-разработке

DOM: объектная модель документа в веб-разработке

Вот схема его DOM-дерева:

Каждый узел может иметь дочерние узлы (на схеме к ним ведут стрелки). Объект document — основание дерева документа — тоже узел, но у него нет родительского узла и имеется ряд свойств и методов, отсутствующих у других узлов. Он имеет один дочерний узел: элемент .

У элемента два дочерних узла: и , для которых дочерними становятся все элементы, содержащиеся в них.

Внимание!

«Элемент» и «тэг» не синонимы. Тэг — это знак разметки: — это два разных тэга. А элемент — объект, помеченный этими тэгами:

Текст абзаца

.

Элементы , </p> <h1> и <p>Содержат внутри себя <b>текст </b>. Это их дочерние <b>текстовые узлы </b>. У элемента </p> <h1> есть также <b>атрибут </b>: align=»center» . <b>Узлы атрибутов </b> — это тоже дочерние узлы элементов, которые их содержат. <p>При работе с узлами DOM-дерева используются их свойства и методы.</p> <h4>Некоторые свойства узлов</h4> <p>Маленькое вступление </p> <p>Ещё раз повторю: когда мы обращаемся в скриптах к элементам страницы, то имеем дело не только с языком Javascript, но и с внедрённым в него интерфейсом <b>DOM </b>. Иногда необходимо отдавать себе в этом отчёт, иногда можно и забыть, «что говорим прозой».</p> <p>Некоторыми свойствами и методами из объектной модели <b>DOM </b> мы уже таким образом пользовались. Поэтому временами я буду давать ссылки на предыдущие уроки.</p> <p>В этом уроке мы не будем идти «академическим» путём, рассматривая все свойства всех узлов во всех браузерах. Для начала познакомимся с самыми практичными и «бесконфликтными» из них.</p> <p>Именно поэтому <b>не будем </b> начинать, как принято, с «основных свойств»: <b>nodeName </b> и <b>nodeValue </b>.</p> <p>tagName </p> <p>Возвращает строку с именем тэга элемента. Все значения tagName содержат символы только верхнего регистра.</p> <p><b>Синтаксис </b></p> <p> <i>элемент </i>.<b>tagName </b> </p> <p><b>Пример </b></p> <p><span id= "testTagName" > Тестируем свойство tagName</p> <p> </p> </div><!-- .entry-content --> </article><!-- #post-## --> <div class="entry-footer"> <span class="entry-meta__comments" title="Комментарии"><span class="fa fa-comment-o"></span> 0</span> </div> <div class="b-share b-share--post"> <div class="b-share__title">Понравилась статья? Поделиться с друзьями:</div> <span class="b-share__ico b-share__vk js-share-link" data-uri="https://vk.com/share.php?url=https%3A%2F%2Fofleshkah.ru%2Fdom-obektnaya-model-dokumenta-chto-takoe-dom-i-zachem-on-nuzhen.html"></span> <span class="b-share__ico b-share__fb js-share-link" data-uri="https://www.facebook.com/sharer.php?u=https%3A%2F%2Fofleshkah.ru%2Fdom-obektnaya-model-dokumenta-chto-takoe-dom-i-zachem-on-nuzhen.html"></span> <span class="b-share__ico b-share__tw js-share-link" data-uri="https://twitter.com/share?text=DOM%3A+%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BD%D0%B0%D1%8F+%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C+%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0+%D0%B2+%D0%B2%D0%B5%D0%B1-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B5&url=https%3A%2F%2Fofleshkah.ru%2Fdom-obektnaya-model-dokumenta-chto-takoe-dom-i-zachem-on-nuzhen.html"></span> <span class="b-share__ico b-share__ok js-share-link" data-uri="https://connect.ok.ru/dk?st.cmd=WidgetSharePreview&service=odnoklassniki&st.shareUrl=https%3A%2F%2Fofleshkah.ru%2Fdom-obektnaya-model-dokumenta-chto-takoe-dom-i-zachem-on-nuzhen.html"></span> <span class="b-share__ico b-share__whatsapp js-share-link js-share-link-no-window" data-uri="whatsapp://send?text=DOM%3A+%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BD%D0%B0%D1%8F+%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C+%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0+%D0%B2+%D0%B2%D0%B5%D0%B1-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B5%20https%3A%2F%2Fofleshkah.ru%2Fdom-obektnaya-model-dokumenta-chto-takoe-dom-i-zachem-on-nuzhen.html"></span> <span class="b-share__ico b-share__viber js-share-link js-share-link-no-window" data-uri="viber://forward?text=DOM%3A+%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BD%D0%B0%D1%8F+%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C+%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0+%D0%B2+%D0%B2%D0%B5%D0%B1-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B5%20https%3A%2F%2Fofleshkah.ru%2Fdom-obektnaya-model-dokumenta-chto-takoe-dom-i-zachem-on-nuzhen.html"></span> <span class="b-share__ico b-share__telegram js-share-link js-share-link-no-window" data-uri="https://t.me/share/url?url=https%3A%2F%2Fofleshkah.ru%2Fdom-obektnaya-model-dokumenta-chto-takoe-dom-i-zachem-on-nuzhen.html&text=DOM%3A+%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BD%D0%B0%D1%8F+%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C+%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0+%D0%B2+%D0%B2%D0%B5%D0%B1-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B5"></span> </div> <meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="https://ofleshkah.ru/dom-obektnaya-model-dokumenta-chto-takoe-dom-i-zachem-on-nuzhen.html" content="DOM: объектная модель документа в веб-разработке"> <meta itemprop="dateModified" content="2025-03-04"> <meta itemprop="datePublished" content="2019-06-06T23:35:24+03:00"> <div itemprop="publisher" itemscope itemtype="https://schema.org/Organization"><meta itemprop="name" content="О Флешках"><meta itemprop="telephone" content="О Флешках"><meta itemprop="address" content="https://ofleshkah.ru"></div><div class="b-related"><div class="b-related__header"><span>Вам также может быть интересно</span></div><div class="b-related__items"> <div id="post-80970" class="post-card post-card-related post-80970 post type-post status-publish format-standard has-post-thumbnail category-set"> <div class="post-card__image"><a href="https://ofleshkah.ru/kak-ochistit-istoriyu-poiska-gugl-na-androide-kak-udalit.html"><img width="315" height="140" src="https://ofleshkah.ru/wp-content/uploads/2023/06/cover80970-1.jpg" class="attachment-thumb-wide size-thumb-wide wp-post-image" alt="" decoding="async" srcset="https://ofleshkah.ru/wp-content/uploads/2023/06/cover80970-1.jpg 1600w, https://ofleshkah.ru/wp-content/uploads/2023/06/cover80970-1-300x133.jpg 300w, https://ofleshkah.ru/wp-content/uploads/2023/06/cover80970-1-1024x455.jpg 1024w, https://ofleshkah.ru/wp-content/uploads/2023/06/cover80970-1-768x341.jpg 768w, https://ofleshkah.ru/wp-content/uploads/2023/06/cover80970-1-1536x683.jpg 1536w" sizes="(max-width: 315px) 100vw, 315px"/><div class="entry-meta"><span class="entry-category"><span>Сеть</span></span><span class="entry-meta__info"><span class="entry-meta__comments" title="Комментарии"><span class="fa fa-comment-o"></span> 0</span></span></div></a></div><header class="entry-header"><div class="entry-title"><a href="https://ofleshkah.ru/kak-ochistit-istoriyu-poiska-gugl-na-androide-kak-udalit.html">Как очистить историю поиска Google на Android?</a></div></header><div class="post-card__content">Как очистить историю поиска гугл на андроиде. Как удалить историю на Android. Как на</div> </div> <div id="post-80874" class="post-card post-card-related post-80874 post type-post status-publish format-standard has-post-thumbnail category-set"> <div class="post-card__image"><a href="https://ofleshkah.ru/chto-za-strelochki-na-ikonkah-windows-10-sinie-strelochki-na-papkah-i-failah-windows-chto.html"><img width="250" height="140" src="https://ofleshkah.ru/wp-content/uploads/2023/01/cover80874-1.jpg" class="attachment-thumb-wide size-thumb-wide wp-post-image" alt="" decoding="async" srcset="https://ofleshkah.ru/wp-content/uploads/2023/01/cover80874-1.jpg 1681w, https://ofleshkah.ru/wp-content/uploads/2023/01/cover80874-1-300x168.jpg 300w, https://ofleshkah.ru/wp-content/uploads/2023/01/cover80874-1-1024x574.jpg 1024w, https://ofleshkah.ru/wp-content/uploads/2023/01/cover80874-1-768x431.jpg 768w, https://ofleshkah.ru/wp-content/uploads/2023/01/cover80874-1-1536x862.jpg 1536w" sizes="(max-width: 250px) 100vw, 250px"/><div class="entry-meta"><span class="entry-category"><span>Сеть</span></span><span class="entry-meta__info"><span class="entry-meta__comments" title="Комментарии"><span class="fa fa-comment-o"></span> 0</span></span></div></a></div><header class="entry-header"><div class="entry-title"><a href="https://ofleshkah.ru/chto-za-strelochki-na-ikonkah-windows-10-sinie-strelochki-na-papkah-i-failah-windows-chto.html">Телефон 9000: особенности и функции</a></div></header><div class="post-card__content">Что за стрелочки на иконках windows 10. Синие стрелочки на папках и файлах Windows:</div> </div> <div id="post-80946" class="post-card post-card-related post-80946 post type-post status-publish format-standard has-post-thumbnail category-set"> <div class="post-card__image"><a href="https://ofleshkah.ru/iobit-uninstaller-7-1-pro-klyuch-aktivacii-licenzionnyi-iobit-uninstaller-pro-besplatnaya-licenziya.html"><img width="239" height="140" src="https://ofleshkah.ru/wp-content/uploads/2022/12/cover80946-1.jpg" class="attachment-thumb-wide size-thumb-wide wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://ofleshkah.ru/wp-content/uploads/2022/12/cover80946-1.jpg 1845w, https://ofleshkah.ru/wp-content/uploads/2022/12/cover80946-1-300x176.jpg 300w, https://ofleshkah.ru/wp-content/uploads/2022/12/cover80946-1-1024x599.jpg 1024w, https://ofleshkah.ru/wp-content/uploads/2022/12/cover80946-1-768x450.jpg 768w, https://ofleshkah.ru/wp-content/uploads/2022/12/cover80946-1-1536x899.jpg 1536w" sizes="auto, (max-width: 239px) 100vw, 239px"/><div class="entry-meta"><span class="entry-category"><span>Сеть</span></span><span class="entry-meta__info"><span class="entry-meta__comments" title="Комментарии"><span class="fa fa-comment-o"></span> 0</span></span></div></a></div><header class="entry-header"><div class="entry-title"><a href="https://ofleshkah.ru/iobit-uninstaller-7-1-pro-klyuch-aktivacii-licenzionnyi-iobit-uninstaller-pro-besplatnaya-licenziya.html">IObit Uninstaller 7.1 Pro: активация и функции</a></div></header><div class="post-card__content">Iobit uninstaller 7.1 pro ключ активации лицензионный. IObit Uninstaller Pro — бесплатная лицензия. Основные</div> </div> <div id="post-81223" class="post-card post-card-related post-81223 post type-post status-publish format-standard has-post-thumbnail category-set"> <div class="post-card__image"><a href="https://ofleshkah.ru/oshibka-0x80070057-parametr-zadan-neverno.html"><img width="187" height="140" src="https://ofleshkah.ru/wp-content/uploads/2022/12/cover81223-1.jpg" class="attachment-thumb-wide size-thumb-wide wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://ofleshkah.ru/wp-content/uploads/2022/12/cover81223-1.jpg 2048w, https://ofleshkah.ru/wp-content/uploads/2022/12/cover81223-1-300x225.jpg 300w, https://ofleshkah.ru/wp-content/uploads/2022/12/cover81223-1-1024x768.jpg 1024w, https://ofleshkah.ru/wp-content/uploads/2022/12/cover81223-1-768x576.jpg 768w, https://ofleshkah.ru/wp-content/uploads/2022/12/cover81223-1-1536x1152.jpg 1536w" sizes="auto, (max-width: 187px) 100vw, 187px"/><div class="entry-meta"><span class="entry-category"><span>Сеть</span></span><span class="entry-meta__info"><span class="entry-meta__comments" title="Комментарии"><span class="fa fa-comment-o"></span> 0</span></span></div></a></div><header class="entry-header"><div class="entry-title"><a href="https://ofleshkah.ru/oshibka-0x80070057-parametr-zadan-neverno.html">Ошибка 0x80070057: параметр задан неверно – решение</a></div></header><div class="post-card__content">Ошибка 0x80070057 параметр задан неверно</div> </div> <div id="post-80945" class="post-card post-card-related post-80945 post type-post status-publish format-standard has-post-thumbnail category-set"> <div class="post-card__image"><a href="https://ofleshkah.ru/internet-mgts-otzyvy-pakety-tarify-dostupnye-tarify-cifrovogo.html"><img width="257" height="140" src="https://ofleshkah.ru/wp-content/uploads/2022/09/cover80945-1.jpg" class="attachment-thumb-wide size-thumb-wide wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://ofleshkah.ru/wp-content/uploads/2022/09/cover80945-1.jpg 1624w, https://ofleshkah.ru/wp-content/uploads/2022/09/cover80945-1-300x163.jpg 300w, https://ofleshkah.ru/wp-content/uploads/2022/09/cover80945-1-1024x557.jpg 1024w, https://ofleshkah.ru/wp-content/uploads/2022/09/cover80945-1-768x418.jpg 768w, https://ofleshkah.ru/wp-content/uploads/2022/09/cover80945-1-1536x836.jpg 1536w" sizes="auto, (max-width: 257px) 100vw, 257px"/><div class="entry-meta"><span class="entry-category"><span>Сеть</span></span><span class="entry-meta__info"><span class="entry-meta__comments" title="Комментарии"><span class="fa fa-comment-o"></span> 0</span></span></div></a></div><header class="entry-header"><div class="entry-title"><a href="https://ofleshkah.ru/internet-mgts-otzyvy-pakety-tarify-dostupnye-tarify-cifrovogo.html">Интернет МГТС: тарифы, пакеты и отзывы</a></div></header><div class="post-card__content">Интернет мгтс: отзывы, пакеты, тарифы. Доступные тарифы цифрового телевидения мгтс gpon Какие пакеты в</div> </div> <div id="post-81489" class="post-card post-card-related post-81489 post type-post status-publish format-standard has-post-thumbnail category-set"> <div class="post-card__image"><a href="https://ofleshkah.ru/sistemnaya-informaciya-linux-poluchaem-informaciyu-ob-oborudovanii-v-linux.html"><img width="237" height="140" src="https://ofleshkah.ru/wp-content/uploads/2022/08/cover81489-1.jpg" class="attachment-thumb-wide size-thumb-wide wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://ofleshkah.ru/wp-content/uploads/2022/08/cover81489-1.jpg 1366w, https://ofleshkah.ru/wp-content/uploads/2022/08/cover81489-1-300x177.jpg 300w, https://ofleshkah.ru/wp-content/uploads/2022/08/cover81489-1-1024x604.jpg 1024w, https://ofleshkah.ru/wp-content/uploads/2022/08/cover81489-1-768x453.jpg 768w" sizes="auto, (max-width: 237px) 100vw, 237px"/><div class="entry-meta"><span class="entry-category"><span>Сеть</span></span><span class="entry-meta__info"><span class="entry-meta__comments" title="Комментарии"><span class="fa fa-comment-o"></span> 0</span></span></div></a></div><header class="entry-header"><div class="entry-title"><a href="https://ofleshkah.ru/sistemnaya-informaciya-linux-poluchaem-informaciyu-ob-oborudovanii-v-linux.html">Linux: как получить системную информацию?</a></div></header><div class="post-card__content">Системная информация linux. Получаем информацию об оборудовании в Linux. Информация о беспроводных сетевых адаптерах</div> </div></div></div> <div id="comments" class="comments-area"> <div id="respond" class="comment-respond"> <div id="reply-title" class="comment-reply-title">Добавить комментарий <small><a rel="nofollow" id="cancel-comment-reply-link" href="/dom-obektnaya-model-dokumenta-chto-takoe-dom-i-zachem-on-nuzhen.html#respond" style="display:none;">Отменить ответ</a></small></div><p class="must-log-in">Для отправки комментария вам необходимо <a href="https://ofleshkah.ru/zema-admin?redirect_to=https%3A%2F%2Fofleshkah.ru%2Fdom-obektnaya-model-dokumenta-chto-takoe-dom-i-zachem-on-nuzhen.html">авторизоваться</a>.</p> </div><!-- #respond --> </div><!-- #comments --> </main><!-- #main --> </div><!-- #primary --> </div><!-- micro --> <aside id="secondary" class="widget-area" itemscope itemtype="http://schema.org/WPSideBar"> <div id="nav_menu-3" class="widget widget_nav_menu"><div class="widget-header">Рубрики</div><div class="menu-rubriki-container"><ul id="menu-rubriki" class="menu"><li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-87869"><a href="https://ofleshkah.ru/android">Android</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-87875"><a href="https://ofleshkah.ru/ios">Ios</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-87872"><a href="https://ofleshkah.ru/windows-10">Windows 10</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-87874"><a href="https://ofleshkah.ru/windows-7">Windows 7</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-87873"><a href="https://ofleshkah.ru/gadzhety">Гаджеты</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-87867"><a href="https://ofleshkah.ru/est-sovetik">Есть советик!</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-87871"><a href="https://ofleshkah.ru/zhelezo">Железо</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-87868"><a href="https://ofleshkah.ru/igry">Игры</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-87870"><a href="https://ofleshkah.ru/internet">Интернет</a></li> </ul></div></div> </aside><!-- #secondary --> </div><!-- #content --> <div class="footer-navigation container" itemscope itemtype="http://schema.org/SiteNavigationElement"> <div class="main-navigation-inner "> <div class="menu-rubriki-container"><ul id="footer_menu" class="menu"><li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-87869"><a href="https://ofleshkah.ru/android">Android</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-87875"><a href="https://ofleshkah.ru/ios">Ios</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-87872"><a href="https://ofleshkah.ru/windows-10">Windows 10</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-87874"><a href="https://ofleshkah.ru/windows-7">Windows 7</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-87873"><a href="https://ofleshkah.ru/gadzhety">Гаджеты</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-87867"><a href="https://ofleshkah.ru/est-sovetik">Есть советик!</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-87871"><a href="https://ofleshkah.ru/zhelezo">Железо</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-87868"><a href="https://ofleshkah.ru/igry">Игры</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-87870"><a href="https://ofleshkah.ru/internet">Интернет</a></li> </ul></div> </div> </div> <footer id="site-footer" class="site-footer container " itemscope itemtype="http://schema.org/WPFooter"> <div class="site-footer-inner "> <div class="footer-bottom"> <div class="footer-info"> © 2026 О Флешках </div><!-- .site-info --> </div> </div><!-- .site-footer-inner --> </footer><!-- .site-footer --> <button type="button" class="scrolltop js-scrolltop"></button> </div><!-- #page --> <script type="speculationrules"> {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/root_child/*","/wp-content/themes/root/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} </script> <script>var pseudo_links = document.querySelectorAll(".pseudo-clearfy-link");for (var i=0;i<pseudo_links.length;i++ ) { pseudo_links[i].addEventListener("click", function(e){ window.open( e.target.getAttribute("data-uri") ); }); }</script><script id="root-scripts-js-extra"> var settings_array = {"rating_text_average":"\u0441\u0440\u0435\u0434\u043d\u0435\u0435","rating_text_from":"\u0438\u0437","lightbox_enabled":""}; var wps_ajax = {"url":"https://ofleshkah.ru/wp-admin/admin-ajax.php","nonce":"49731a5a6b"}; //# sourceURL=root-scripts-js-extra </script> <script id="root-scripts-js" src="https://ofleshkah.ru/wp-content/themes/root/assets/js/scripts.min.js"></script> <script async data-wp-strategy="async" fetchpriority="low" id="comment-reply-js" src="https://ofleshkah.ru/wp-includes/js/comment-reply.min.js"></script> <script>!function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("test",null,e)}catch(t){}return t}()||function(i){var o=!0,s=!1;EventTarget.prototype.addEventListener=function(t,e,n){var r="object"==typeof n,a=r?n.capture:n;n=r?n:{},"touchstart"!=t&&"scroll"!=t&&"wheel"!=t||(n.passive=void 0!==n.passive?n.passive:o),n.capture=void 0!==a?a:s,i.call(this,t,e,n)}}(EventTarget.prototype.addEventListener);</script> </body> </html>