Javascript document: Document — Web APIs | MDN

Document | JavaScript справочник

Интерфейсы веб API

Описание интерфейса

Интерфейс документа представляет собой любую веб-страницу, загруженную в браузер и служит точкой входа в содержимое веб-страницы, которое является деревом DOM. Интерфейс Document предоставляет функции глобально для документа, описывает общие свойства и методы для любого вида документа.

Методы интерфейса Document

МетодОписание
Chrome

Firefox

Opera

Safari

IExplorer

Edge
adoptNode() Метод позволяет принять узел из любого документа, частью которого он являлся на момент вызова, и записывает в свойство Node.ownerDocument ссылку на текущий документ, подготавливая его к добавлению в текущий документ. ДаДаДаДа9. 0Да
close() Метод завершает запись в документ (закрывает поток открытый с помощью метода open() объекта Document) ДаДаДаДаДаДа
createAttribute() Метод создает новый атрибут с указанным именем (объект Attr) и возвращает его. ДаДаДаДаДаДа
createCDATASection() Создает узел CDATASection и возвращает его (только для XML документов). ДаДаДаДаДаДа
createComment() Позволяет создать новый узел комментария и возвратить его. ДаДаДаДаДаДа
createDocumentFragment() Позволяет создать новый пустой объект DocumentFragment, предназначенный для создания фрагмента документа, в который впоследствии допускается добавить новые элементы и узлы, а затем присоединить этот фрагмент к основному дереву DOM.
ДаДаДаДаДаДа
createElement() Метод позволяет создать и вернуть новый элемент (пустой узел Element) с указанным именем тега. ДаДаДаДаДаДа
createElementNS() Метод позволяет создать и вернуть новый элемент (пустой узел Element) с указанным именем тега с указанным URI пространства имен. ДаДаДаДаДаДа
createEvent() Метод создает событие указанного типа. ДаДаДаДа9.0Да
createNodeIterator() Возвращает новый объект NodeIterator. ДаДаДаДа9.0Да
createTextNode() Метод позволяет создать и вернуть текстовый узел с указанным текстом. ДаДаДаДаДаДа
getElementById() Метод возвращает объект Element, представляющий из себя элемент, глобальный атрибут id которого соответствует указанной строке. ДаДаДаДаДаДа
getElementsByClassName() Возвращает массивоподобный (итерируемый) объект всех дочерних элементов, которые соответствуют указанному имени классу, или классам.ДаДаДаДаДаДа
getElementsByName() Метод возвращает коллекцию всех элементов документа с указанным именем (значением атрибута name) в виде объекта NodeList.ДаДаДаДаДаДа
getElementsByTagName() Метод возвращает коллекцию всех элементов документа с указанным именем тега в виде объекта HTMLCollection.ДаДаДаДаДаДа
getElementsByTagNameNS() Метод возвращает коллекцию всех элементов документа с указанным именем тега в виде объекта NodeList, принадлежащих определенному пространству именДаДаДаДаДаДа
hasFocus() Метод возвращает логическое значение, которое указывает на то, имеет ли документ, или любой элемент внутри документа фокус. ДаДаДаДаДаДа
importNode() Метод создает новую копию указанного узла (объект Node) или фрагмента (объект DocumentFragment) из другого документа для возможности вставки в текущий документ.ДаДаДаДа9.0*Да
open() Метод позволяет открыть поток для записи документа (данные могут быть переданы с помощью методов write() или writeln() объекта Document).ДаДаДаДаДаДа
querySelector() Метод возвращает первый элемент в документе (объект Element), соответствующий указанному селектору, или группе селекторов. ДаДаДаДа
8.0*
Да
querySelectorAll() Метод возвращает список элементов в пределах документа (статичный (не живой) объект типа NodeList), соответствующих указанному селектору, или группе селекторов. ДаДаДаДа8.0*Да
write() Записывает в поток документа строку текста. ДаДаДаДаДаДа
writeln() Записывает в поток документа строку текста за которой следует символ новой строки. ДаДаДаДаДаДа

Свойства интерфейса Document

СвойствоОписание
Chrome

Firefox

Opera

Safari

IExplorer

Edge
bodyПредставляет ссылку на узел <body> или <frameset> текущего документа, или null, если такой элемент не существует. Элемент <frameset> не поддерживается в HTML 5. ДаДаДаДаДаДа
characterSetВозвращает кодировку для текущего документа. Свойство доступно только для чтения. 45.044.034.09.09.0Да
cookieПолучает или задает cookie (небольшой фрагмент данных, отправленный веб-сервером и хранимый на компьютере пользователя), связанных с текущим документом. ДаДаДаДаДаДа
defaultView Возвращает ссылку на объект Window, связанный с документом, или null, если он недоступен. ДаДаДаДа9.0Да
designModeУправляет возможностью редактирования всего документа. ДаДаДаДаДаДа
dirВозвращает, или задает направление текста документа (слева направо (по умолчанию) или справа налево). ДаДаДаДаДаДа
doctypeВозвращает объявление (декларацию) типа документа (Document Type Declaration), связанное с текущим документом. ДаДаДаДаДаДа
documentElementВозвращает элемент (объект Element), являющийся корневым элементом документа (например, элемент <html> для документов типа HTML).
ДаДаДаДаДаДа
documentURIВозвращает в виде строки текущий адрес документа. ДаДаДаДаДаДа
DocumentOrShadowRoot.
activeElement
Возвращает элемент в дереве DOM, или shadowDOM, который в данный момент имеет фокус 53.0Да40.0ДаДаДа
DocumentOrShadowRoot.
fullscreenElement
Свойство доступное только для чтения возвращает элемент, который в настоящее время представлен в полноэкранном режиме в этом документе, или значение null, если полноэкранный режим в настоящее время не используется. 53.0
-webkit-
64.040.0
-webkit-
Да
-webkit-
Да
-webkit-
Да
-webkit-
DocumentOrShadowRoot.
pointerLockElement
Предоставляет набор элементов в качестве целевого объекта для событий мыши, когда указатель заблокирован. 53.0Да40.0ДаДаДа
DocumentOrShadowRoot.
styleSheets
Возвращает коллекцию StyleSheetList, содержащую объекты CSSStyleSheet, описывающих стили явно связанных или внедренных в текущем документе. 53.0Да40.0ДаДаДа
domainВозвращает, или задает доменную часть источника текущего документа, используемую той же политикой источника. ДаДаДаДаДаДа
embedsВозвращает список элементов внедренных с использованием HTML элемента <embed>, содержащихся в текущем документе. ДаДаДаДаДаДа
fontsВозвращает объект FontFaceSet, который управляет загрузкой шрифтов и запросом их статуса загрузки для текущего документа. 60. 041.047.010.0НетНет
formsВозвращает коллекцию HTMLCollection со списком всех элементов <form>, содержащихся в текущем документе. ДаДаДаДаДаДа
headВозвращает элемент <head>, содержащийся в текущем документе. ДаДаДаДа9.0Да
hiddenВозвращает логическое значение, которое указывает на то, считается ли страница скрытой, или нет. 33.018.012.17.010.0Да
imagesВозвращает коллекцию изображений в текущем HTML документе. ДаДаДаДаДаДа
implementationВозвращает объект DOMImplementation, связанный с текущим документом. Этот объект определяет методы, не относящиеся к какому-либо конкретному объекту Document, а являющиеся глобальными для реализации DOM. ДаДаДаДаДаДа
lastModifiedВозвращает строку, содержащую дату и время последнего изменения текущего документа. ДаДаДаДаДаДа
linksВозвращает коллекцию всех элементов <area> и <a> со значением атрибута href, содержащихся в текущем документе. ДаДаДаДаДаДа
locationВозвращает объект Location, который содержит сведения об URL адресе документа и предоставляет методы для изменения этого URL адреса, и загрузки другого URL адреса. ДаДаДаДаДаДа
pluginsВозвращает коллекцию HTMLCollection, содержащую один, или несколько элементов <embed> в текущем документе, или null, если в документе нет вложений. ДаДаДаДаДаДа
scriptsВозвращает коллекцию HTMLCollection всех элементов <script>, содержащихся в текущем документе. ДаДаДаДаДаДа
scrollingElementВозвращает ссылку на элемент (объект Element), прокручивающий текущий документ. 44.048.031.09.0НетДа
visibilityStateВозвращает строковое значение определяющее видимость документа (находится ли документ в фоновом режиме, или на невидимой вкладке, или загружается только для предварительной отрисовки). 33.018.012.17.010.0Да
ParentNode.childElementCountВозвращает количество дочерних элементов конкретного узла. ДаДаДаДа9. 0Да
ParentNode.childrenВозвращает живую коллекцию (HTMLCollection), которая содержит все дочерние элементы узла, на котором он был вызван. ДаДаДаДа9.0*Да
ParentNode.firstElementChildВозвращает первый дочерний элемент (объект Element) конкретного узла, или null, если дочерних элементов нет. ДаДаДаДа9.0Да
ParentNode.lastElementChildВозвращает последний дочерний элемент (объект Element) конкретного узла, или null, если дочерних элементов нет. ДаДаДаДа9.0Да
readyStateОписывает состояние загрузки документа. ДаДаДаДа9.0Да
referrerВозвращает URI страницы, с которой был осуществлен переход на текущую страницу. ДаДаДаДаДаДа
titleПолучает или задает текущее название документа (содержимое элемента <title>). ДаДаДаДаДаДа
URLВозвращает расположение документа в виде строки. ДаДаДаДаДаДа
Интерфейсы веб API

JS JavaScript HTML DOM Document

HTML5CSS.ru

ЛУЧШИЙ САЙТ ДЛЯ РАЗРАБОТЧИКОВ

❮ Назад Дальше ❯


Объект документа HTML DOM является владельцем всех других объектов на веб-странице.


Объект документа HTML DOM

Объект Document представляет веб-страницу.

Если вы хотите получить доступ к любому элементу на HTML-странице, вы всегда начинаете с доступа к объекту document.

Ниже приведены примеры того, как можно использовать объект Document для доступа к HTML и манипулирования им.


Поиск элементов HTML

МетодОписание
document.getElementById(id)Поиск элемента по идентификатору элемента
document.getElementsByTagName(name)Поиск элементов по имени тега
document.getElementsByClassName(name)Поиск элементов по имени класса

Изменение элементов HTML

МетодОписание
element.innerHTML =  new html contentИзменение внутреннего HTML-кода элемента
element.attribute = new valueИзменение значения атрибута элемента HTML
element.setAttribute(attribute, value)Изменение значения атрибута элемента HTML
element.style.property = new styleИзменение стиля элемента HTML

Добавление и удаление элементов

МетодОписание
document. createElement(element)Создание элемента HTML
document.removeChild(element)Удаление элемента HTML
document.appendChild(element)Добавление элемента HTML
document.replaceChild(element)Замена элемента HTML
document.write(text)Запись в выходной поток HTML


Добавление обработчиков событий

МетодОписание
document.getElementById(id).onclick = function(){code}Добавление кода обработчика событий в событие OnClick

Поиск объектов HTML

Первый уровень HTML DOM 1 (1998), определенные 11 объектов HTML, коллекции объектов и свойства. Они по-прежнему действительны в HTML5.

Позже, в HTML DOM Level 3, добавлено больше объектов, коллекций и свойств.

СвойствоОписаниеDom
document. anchorsВозвращает все элементы <a>, имеющие атрибут Name1
document.appletsВозвращает все элементы <апплета> (устаревшие в HTML5)1
document.baseURIВозвращает абсолютный базовый универсальный код ресурса (URI) документа3
document.bodyВозвращает элемент <BODY>1
document.cookieВозвращает файл cookie документа1
document.doctypeВозвращает документ документа3
document.documentElementВозвращает элемент <HTML>3
document.documentModeВозвращает режим, используемый обозревателем3
document.documentURIВозвращает универсальный код ресурса (URI) документа3
document.domainВозвращает имя домена сервера документов1
document. domConfigУстарели. Возвращает конфигурацию DOM3
document.embedsВозвращает все элементы <embed>3
document.formsВозвращает все элементы <form>1
document.headВозвращает элемент <head>3
document.imagesВозвращает все элементы <img>1
document.implementationВозвращает реализацию модели DOM3
document.inputEncodingВозвращает кодировку документа (набор символов)3
document.lastModifiedВозвращает дату и время обновления документа3
document.linksВозвращает все элементы <Area> и <a>, имеющие атрибут href1
document.readyStateВозвращает состояние (Загрузка) документа3
document.referrerВозвращает универсальный код ресурса (URI) ссылающегося (связывающего документа)1
document. scriptsВозвращает все элементы <script>3
document.strictErrorCheckingВозвращает при принудительной проверке ошибок3
document.titleВозвращает элемент <Title>1
document.URLВозвращает полный URL-адрес документа1

❮ Назад Дальше ❯

PHP\CSS\JS\HMTL Editor


Copyright 2018-2020 HTML5CSS.ru

Правила и Условия Политика конфиденциальности О нас Контакты

Объектная модель документа (DOM)

— веб-API

Объектная модель документа ( DOM ) соединяет веб-страницы со сценариями или языками программирования, представляя структуру документа, например HTML, представляющий веб-страницу, в памяти. . Обычно это относится к JavaScript, хотя моделирование документов HTML, SVG или XML как объектов не является частью основного языка JavaScript.

DOM представляет собой документ с логическим деревом. Каждая ветвь дерева заканчивается узлом, и каждый узел содержит объекты. Методы DOM обеспечивают программный доступ к дереву. С их помощью вы можете изменить структуру, стиль или содержание документа.

Узлы также могут иметь прикрепленные к ним обработчики событий. Как только событие инициируется, обработчики событий запускаются.

Чтобы узнать больше о том, что такое модель DOM и как она представляет документы, см. нашу статью Введение в модель DOM.

  • Атрибут
  • CDATAРаздел
  • Символьные данные
  • Комментарий
  • Пользовательское событие
  • Документ
  • Фрагмент документа
  • Тип документа
  • DOMError Устаревший
  • DOMException
  • Реализация ДОМИ
  • DOMStringList
  • DOMTokenList
  • Элемент
  • Событие
  • Цель события
  • HTMLКоллекция
  • Обозреватель мутаций
  • Запись Мутации
  • NamedNodeMap
  • Узел
  • фильтр узлов
  • Итератор узлов
  • Список узлов
  • Инструкция по обработке
  • Диапазон
  • Текст
  • TextDecoder Expect behavior to change in the future.»> Экспериментальный
  • TextEncoder Экспериментальный
  • Диапазоны времени
  • Триволкер
  • URL-адрес
  • Окно
  • Рабочий
  • XML-документ Экспериментальный

Устаревшие интерфейсы DOM

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

  • Конфигурация DOM
  • DOMErrorHandler
  • DOMImplementationList
  • DOMImplementationRegistry
  • Источник реализации ДОМИ
  • DOMLocator
  • ДОМОбъект
  • DOMSettableTokenList
  • DOMUserData
  • ЭлементТраверсал
  • Объект
  • EntityReference
  • Список имен
  • Обозначение
  • Информация о типе
  • UserDataHandler

Документ, содержащий HTML, описывается с использованием интерфейса Document , который расширен спецификацией HTML и включает в себя различные специфические для HTML функции. В частности, интерфейс Element улучшен, чтобы стать HTMLElement и различными подклассами, каждый из которых представляет один из (или семейство тесно связанных) элементов.

API HTML DOM обеспечивает доступ к различным функциям браузера, таким как вкладки и окна, стили и таблицы стилей CSS, история браузера и т. д. Эти интерфейсы обсуждаются далее в документации по HTML DOM API.

Интерфейсы элементов SVG

  • SVGAElement
  • SVGAltGlyphElement Устаревший
  • SVGAltGlyphDefElement Устаревший
  • SVGAltGlyphItemElement Устаревший
  • SVGAnimationElement
  • SVGAnimateElement
  • SVGAnimateColorElement Not for use in new websites.»> Устаревший
  • SVGAnimateMotionElement
  • SVGAnimateTransformElement
  • SVGCircleElement
  • SVGClipPathElement
  • SVGComponentTransferFunctionElement
  • SVGCursorElement
  • SVGDefsElement
  • SVGDescElement
  • SVGElement
  • SVGEllipseElement
  • SVGFEBlendElement
  • SVGFEColorMatrixElement
  • SVGFEComponentTransferElement
  • SVGFECompositeElement
  • SVGFEConvolveMatrixElement
  • SVGFEDiffuseLightingElement
  • SVGFEDisplacementMapElement
  • SVGFEDistantLightElement
  • SVGFEDropShadowElement
  • SVGFEFloodElement
  • SVGFEFuncAElement
  • SVGFEFuncBEElement
  • SVGFEFuncGElement
  • SVGFEFuncREElement
  • SVGFEGGaussianBlurElement
  • SVGFEImageElement
  • SVGFEMergeElement
  • SVGFEMergeNodeElement
  • SVGFEMorphologyElement
  • SVGFEOffsetElement
  • SVGFEPointLightElement
  • SVGFESpecularLightingElement
  • SVGFESpotLightElement
  • SVGFETileElement
  • SVGFEТурбулентностьЭлемент
  • SVGFilterElement
  • SVGFilterPrimitiveStandardAttributes
  • SVGFontElement Not for use in new websites.»> Устаревший
  • SVGFontFaceElement Устаревший
  • SVGFontFaceFormatElement Устаревший
  • SVGFontFaceNameElement Устаревший
  • SVGFontFaceSrcElement Устаревший
  • SVGFontFaceUriElement Устаревший
  • SVGForeignObjectElement
  • SVGGElement
  • SVGGeometryElement
  • SVGGlyphElement Устаревший
  • SVGGlyphRefElement Not for use in new websites.»> Устаревший
  • SVGGradientElement
  • SVGGraphicsElement
  • SVGHatchElement Экспериментальный
  • SVGHatchpathElement Экспериментальный
  • SVGHKernElement Устаревший
  • SVGImageElement
  • SVGLinearGradientElement
  • SVGLineElement
  • SVGMarkerElement Экспериментальный
  • SVGMaskElement
  • SVGMetadataElement
  • SVGMissingGlyphElement Not for use in new websites.»> Устаревший
  • SVGMPathElement
  • SVGPathElement
  • SVGPatternElement
  • SVGPolylineElement
  • SVGPolygonElement
  • SVGRadialGradientElement
  • SVGRectElement
  • SVGScriptElement
  • SVGSetElement
  • SVGStopElement
  • SVGStyleElement
  • СВГСВГЭлемент
  • SVGSwitchElement
  • SVGSymbolElement
  • SVGTextContentElement
  • SVGTextElement
  • SVGTextPathElement
  • Элемент SVGTextPositioning
  • SVGTitleElement
  • SVGTRefElement Not for use in new websites.»> Устаревший
  • SVGTSpanElement
  • SVGUseElement
  • SVGViewElement
  • SVGVKernElement Устаревший

Интерфейсы типов данных SVG

Вот API DOM для типов данных, используемых в определениях свойств и атрибутов SVG.

Статический тип
  • SVGAngle
  • SVGColor Устаревший
  • SVGICCColor Устаревший
  • SVGElementInstance
  • SVGElementInstanceList
  • SVGLength
  • SVGLengthList
  • SVGMatrix Not for use in new websites.»> Устаревший
  • SVGNameList
  • SVGNumber
  • SVGNumberList
  • SVGPaint
  • SVGPathSeg Устаревший
  • SVGPathSegClosePath Устаревший
  • SVGPathSegMovetoAbs Устаревший
  • SVGPathSegMovetoRel Устаревший
  • SVGPathSegLinetoAbs Устаревший
  • SVGPathSegLinetoRel Устаревший
  • SVGPathSegCurvetoCubicAbs Not for use in new websites.»> Устаревший
  • SVGPathSegCurvetoCubicRel Устаревший
  • SVGPathSegCurvetoQuadraticAbs Устаревший
  • SVGPathSegCurvetoQuadraticRel Устаревший
  • SVGPathSegArcAbs Устаревший
  • SVGPathSegArcRel Устаревший
  • SVGPathSegLinetoHorizontalAbs Устаревший
  • SVGPathSegLinetoHorizontalRel Устаревший
  • SVGPathSegLinetoVerticalAbs Not for use in new websites.»> Устаревший
  • SVGPathSegLinetoVerticalRel Устаревший
  • SVGPathSegCurvetoCubicSmoothAbs Устаревший
  • SVGPathSegCurvetoCubicSmoothRel Устаревший
  • SVGPathSegCurvetoQuadraticSmoothAbs Устаревший
  • SVGPathSegCurvetoQuadraticSmoothRel Устаревший
  • SVGPathSegList Устаревший
  • SVGPoint Устаревший
  • SVGPointList Not for use in new websites.»> Устаревший
  • SVGPreserveAspectRatio
  • SVGRect Устаревший
  • SVGStringList
  • SVGTransform
  • SVGTransformList
Анимированный тип
  • SVGAnimatedAngle
  • SVGAnimatedBoolean
  • SVGAnimatedEnumeration
  • SVGAnimatedInteger
  • SVGAnimatedLength
  • SVGAnimatedLengthList
  • SVGAnimatedNumber
  • SVGAnimatedNumberList
  • SVGAnimatedPathData Устаревший
  • SVGAnimatedPoints
  • SVGAnimatedPreserveAspectRatio
  • SVGAnimatedRect
  • SVGAnimatedString
  • SVGAnimatedTransformList
  • Контроль времени элемента
  • Событие времени

Другие интерфейсы SVG

  • GetSVGDocument
  • ShadowAnimation
  • SVGColorProfileRule Not for use in new websites.»> Устаревший
  • SVGCSSRule Устаревший
  • SVGДокумент
  • SVGException Устаревший
  • SVGFitToViewBox
  • SVGLocatable Устаревший
  • SVGRenderingIntent Устаревший
  • SVGUnitTypes
  • SVGUseElementShadowRoot
  • SVGViewSpec Устаревший
  • SVGZoomEvent Устаревший
Спецификация
Стандарт DOM
  • Примеры DOM
  • Объектная модель CSS (CSSOM)

Последнее изменение: , участниками MDN

DOM: объектная модель документа — видеоурок по JavaScript

Из курса: JavaScript Essential Training

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

— Когда мы, люди, сталкиваемся с объектами в реальном мире, мы создаем модели этих объектов в уме. Просто подумай об этом. Если я произнесу слово «рюкзак», у вас сразу возникнет прототип модели рюкзака. То, как выглядит этот рюкзак, как он функционирует и что в нем содержится, будет отличаться от каждого человека, но общая модель одна и та же. Сумка большого размера с двумя лямками сбоку, которые можно накинуть на плечи. И вот в чем дело, эта ментальная модель объекта, объектная модель, становится более сложной и детальной, чем больше мы знаем об объекте. Поэтому, если я возьму этот рюкзак и открою его, чтобы показать вам карманы и особенности внутри, вы сразу же разработаете более продвинутую объектную модель для этого конкретного рюкзака и того, что находится внутри. Просто смотри. Позвольте мне просто закрыть этот рюкзак. И тогда я говорю: «Помоги мне найти свинью». Даже если вы этого не видите, вы установили объектную модель для этого рюкзака с надежной иерархией, и вы можете использовать ее, чтобы не только найти свинью, но даже объяснить кому-то еще, как ее найти. Я хочу, чтобы ты сделал это для меня прямо сейчас. Возьмите лист бумаги и ручку и представьте, что вы пишете набор инструкций совершенно незнакомому человеку о том, как найти свинью внутри этого пакета. Начните с «Возьми серый рюкзак», а затем перечислите все шаги, необходимые для того, чтобы добраться до свиньи. Я буду ждать. Хорошо, этого достаточно. Так вот, мы с тобой, наверное, никогда не встречались, верно? И я буквально никак не мог увидеть то, что вы записали, потому что я здесь, в своем доме, записываю это за несколько месяцев до того, как вы это смотрите. Согласовано? Тем не менее, я почти уверен, что могу составить список шагов, который будет очень точно соответствовать вашему. Посмотрим. Номер один, хватай рюкзак. Во-вторых, откройте правую боковую панель. Номер три, откройте молнию внутри панели. Номер четыре, достаньте черный мешочек. Номер пять, вот свинья! Итак, мы, люди, естественным образом организуем все объекты окружающего нас мира в логические иерархические структуры. Вот почему, если вы придете ко мне домой и я скажу: «Можешь дать мне ложку?» Вы бы немедленно пошли на кухню и начали бы искать в верхних ящиках, потому что в большинстве случаев, из-за их формы и частоты использования, именно там хранятся столовые приборы. В примере с сумкой и в примере с кухней мы имеем иерархические деревья со стволом, ветвями, более тонкими ветвями и, в конце концов, ветвями.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *