Введение
В веб-разработке понимание объектной модели браузера (BOM) и объектной модели документа (DOM) крайне важно для эффективного управления веб-страницами и взаимодействия с ними. BOM и DOM — важнейшие компоненты среды JavaScript в веб-браузере. В этой статье мы подробно рассмотрим BOM и DOM, выделив их различия, функции и практические сценарии. К концу статьи вы получите полное представление об этих двух моделях и их роли в веб-разработке.
Объектная модель браузера (BOM)
BOM представляет собой специфичные для браузера объекты и интерфейсы, позволяющие JavaScript взаимодействовать с окном браузера и его элементами. Он предоставляет доступ к различным свойствам, методам и событиям, позволяя разработчикам контролировать поведение браузера, управлять окнами, управлять файлами cookie, работать с URL-адресами и многое другое.
Основные компоненты спецификации:
Объект окна:
- Глобальный объект в спецификации представляет окно браузера и обеспечивает доступ к функциям браузера.
Объект навигатора:
- Предоставляет информацию о названии браузера, версии, платформе и возможностях.
Местоположение объекта:
- Представляет URL-адрес текущей веб-страницы и позволяет манипулировать URL-адресом.
Объект документа:
Он отображает весь HTML-документ и предоставляет методы для взаимодействия с его содержимым.
Практические сценарии использования спецификации:
Управление Windows:
// Open a new browser window
const newWindow = window.open("https://www.example.com", "_blank");
// Close the current window
window.close();Манипулирование URL-адресами:
// Redirect the user to a different URL
window.location.href = "https://www.example.com";
// Get the current URL and display it
const currentUrl = window.location.href;
console.log(currentUrl);Обработка файлов cookie:
// Create a cookie
document.cookie = "username=John Doe";
// Read a cookie
const username = document.cookie.split(";")[0].split("=")[1];
console.log(username);
// Delete a cookie
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";Объектная модель документа (DOM)
DOM — это платформенно-независимый программный интерфейс, представляющий структуру HTML- или XML-документа в виде древовидной структуры. Он позволяет JavaScript манипулировать элементами документа и взаимодействовать с ними, например, изменять его содержимое, добавлять или удалять элементы, обрабатывать события и многое другое.
Ключевые компоненты DOM:
Объект документа:
- Он представляет собой корень дерева документа и предоставляет методы для доступа к элементам и управления ими.
Элементные объекты:
- Представляет элементы HTML и предоставляет методы для управления их атрибутами, стилями и содержимым.
Объекты узла:
- Представляет различные типы узлов в документе, включая элементы, текст, комментарии и многое другое.
Практические сценарии использования DOM:
Модификация контента:
// Change the text of a paragraph element
const paragraph = document.getElementById("myParagraph");
paragraph.textContent = "Updated text";
// Update an element's attribute
const link = document.querySelector("a");
link.setAttribute("href", "https://www.example.com");Элементы манипуляции:
// Create a new element and append it to the document
const newElement = document.createElement("div");
newElement.textContent = "New Element";
document.body.appendChild(newElement);
// Remove an element from the document
const elementToRemove = document.getElementById("myElement");
elementToRemove.parentNode.removeChild(elementToRemove);Обработка событий:
// Add an event listener to a button
const button = document.getElementById("myButton");
button.addEventListener("click", function() {
console.log("Button clicked");
});
// Handle form submission event
const form = document.getElementById("myForm");
form.addEventListener("submit", function(event) {
event.preventDefault();
console.log("Form submitted");
});Сравните и сопоставьте BOM и DOM
Взаимосвязь между BOM и DOM:
- И BOM, и DOM являются частью среды JavaScript в веб-браузере.
- BOM обеспечивает доступ к определенным функциям браузера и управляет окном браузера.
- DOM представляет структуру HTML- или XML-документа и позволяет манипулировать его элементами.
Основные различия между BOM и DOM:
Объем:
- BOM работает на уровне окна, тогда как DOM действует внутри документа и его элементов.
Функциональность:
- BOM фокусируется на функциях, связанных с браузером, таких как управление окнами, файлы cookie и URL-адреса.
- DOM занимается манипулированием и взаимодействием со структурой и содержимым документа.
Практические примеры сравнения BOM и DOM:
Доступ к свойствам окна с помощью BOM:
// Get the width and height of the browser window
const windowWidth = window.innerWidth || document.documentElement.clientWidth;
const windowHeight = window.innerHeight || document.documentElement.clientHeight;
console.log(`Window dimensions: ${windowWidth} x ${windowHeight}`);
// Scroll to a specific position
window.scrollTo(0, 0);Управление элементами DOM с помощью DOM:
// Change the background color of an element
const element = document.getElementById("myElement");
element.style.backgroundColor = "blue";
// Create a new element and append it to the document
const newElement = document.createElement("div");
newElement.textContent = "New Element";
document.body.appendChild(newElement);Результат
Понимание объектной модели браузера (BOM) и объектной модели документа (DOM) критически важно для эффективного управления веб-страницами и взаимодействия с ними. BOM обеспечивает доступ к функциям браузера и позволяет управлять окном браузера, файлами cookie и URL-адресами. С другой стороны, DOM упрощает управление элементами документа и взаимодействие с ними, а также обеспечивает динамическое обновление контента и обработку событий. Используя возможности BOM и DOM, разработчики могут создавать динамические и интерактивные веб-приложения. Будь то управление окнами, управление URL-адресами, управление файлами cookie, изменение контента или взаимодействие с событиями, BOM и DOM предоставляют инструменты, необходимые для улучшения веб-взаимодействия с JavaScript.









