Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Средство "Консоль" — это отличный способ взаимодействия с веб-страницей в браузере. В средствах разработки вы обычно взаимодействуете с DOM с помощью средства "Проверка " для выбора элементов и с помощью средства "Элементы" для изменения модели DOM, например для добавления или изменения атрибутов или стилей элементов.
Средство Console также можно использовать для взаимодействия с DOM с помощью кода JavaScript. Например, можно найти элементы в дереве DOM и управлять ими с помощью API DOM.
Дополнительные сведения о средстве проверки см. в статье Анализ страниц с помощью средства проверки. Дополнительные сведения о средстве Elements см. в статье Проверка, изменение и отладка HTML и CSS с помощью средства Elements.
Поиск элемента в дереве DOM
Чтобы найти элемент в дереве DOM из средства Консоли , выполните следующие действия:
Перейдите на веб-страницу, которую вы хотите проверить. Например, откройте демонстрационную страницу взаимодействия DOM в консоли DevTools в новой вкладке или окне.
Нажмите клавиши CTRL+SHIFT+J (Windows, Linux) или COMMAND+OPTION+J (macOS). Средство "Консоль" откроется в средствах разработки рядом с веб-страницей.
Введите или вставьте следующий код в консоль и нажмите клавишу ВВОД.
document.querySelector('main');Элемент
<main>из дерева DOM отображается в консоли:
В консоли наведите указатель мыши на результирующий HTML-элемент
<main>или нажмите клавиши SHIFT+TAB. На отображаемой веб-странице DevTools выделяет соответствующий<main>элемент:
Изменение модели DOM веб-страницы
Вы можете внести изменения в дерево DOM веб-страницы с помощью средства Консоли . В этом примере вы задали значение атрибута элемента DOM с помощью консоли, чтобы повлиять на стили элемента: вы добавляете серый фон к <h1> заголовку страницы.
Перейдите на веб-страницу, которую вы хотите изменить. Например, откройте демонстрационную страницу взаимодействия DOM в консоли DevTools в новой вкладке или окне.
Нажмите клавиши CTRL+SHIFT+J (Windows, Linux) или COMMAND+OPTION+J (macOS). Средство "Консоль" откроется в средствах разработки рядом с веб-страницей.
Вставьте следующий код в консоль:
document.querySelector("h1").style.backgroundColor = "lightgrey";За заголовком страницы отображается серый фон:
Получение ссылки на элемент
На сложной веб-странице может быть трудно найти нужный элемент для изменения. Но вы можете использовать средство проверки , чтобы помочь вам. Предположим, вы хотите изменить текст первой ссылки в элементе Section 1 отображаемой страницы:
Чтобы получить ссылку на элемент link, который требуется изменить, выполните следующие действия:
Перейдите на веб-страницу, которую вы хотите проверить. Например, откройте демонстрационную страницу взаимодействия DOM в консоли DevTools в новой вкладке или окне.
Нажмите клавиши CTRL+SHIFT+J (Windows, Linux) или COMMAND+OPTION+J (macOS). Средство "Консоль" откроется в средствах разработки рядом с веб-страницей.
Щелкните инструмент Проверка (
), а затем на отображаемой веб-странице наведите указатель мыши на ссылку, например Ссылку 1:
Щелкните ссылку с наведенным курсором на отрисованную веб-страницу. DevTools открывает инструмент Элементы с выбранным соответствующим элементом:
Нажмите кнопку
...рядом с элементом в дереве DOM и выберите Копировать>путь JS:
Ниже приведен путь JS, который вы скопировали:
document.querySelector("body > main > section:nth-child(1) > ul > li:nth-child(1) > a")Приведенный выше путь представляет собой селектор CSS, указывающий на элемент link, выбранный с помощью средства проверки .
В консоли вставьте скопированный путь к JavaScript, но пока не нажимайте клавишу ВВОД .
Измените текст ссылки
Updated linkна . Для этого добавьте.textContent = "Updated link"в путь JavaScript, который вы вставили ранее:
Используйте все API-интерфейсы DOM, которые нужно изменить в дереве DOM в консоли. Чтобы сделать его более удобным, консоль поставляется с несколькими вспомогательными служебными методами.
Полезные служебные функции консоли
Многие удобные методы и сочетания клавиш доступны в качестве служебных функций в средстве консоли . Некоторые из этих служебных функций очень полезны для взаимодействия с деревом DOM веб-страницы и описаны ниже. Дополнительные сведения см. в разделе Функции и селекторы средств консоли.
Получение элементов с помощью функций и сочетаний клавиш $
Символ $ имеет особое значение в средстве Консоли :
Функции
$()и$$()являются более короткими версиямиdocument.querySelector()функций иdocument.querySelectorAll().$0,$1,$2,$3и$4— это сочетания клавиш для элементов, которые вы недавно выбрали в инструменте Элементы .$0всегда является последним выбранным элементом. Таким образом, в предыдущем примере Получение ссылки на элемент после выбора элемента с помощью средства "Проверка " можно изменить его текст с помощью$0.textContent = "Updated link"того же эффекта.$x()позволяет выбрать элементы DOM с помощью XPath.
Получение всех ссылок со страницы
В этом примере вы используете служебную $$() функцию для вывода списка всех ссылок на веб-странице. Затем вы используете эту функцию вместе с методом filter() массива, чтобы избавиться от ссылок, которые не начинаются с https (например, ссылок привязки на текущей веб-странице), чтобы отфильтровать список, чтобы включить только внешние ссылки.
Перейдите на веб-страницу, с которой вы хотите получить ссылки. Например, откройте демонстрационную страницу взаимодействия DOM в консоли DevTools в новой вкладке или окне.
Нажмите клавиши CTRL+SHIFT+J (Windows, Linux) или COMMAND+OPTION+J (macOS). Средство "Консоль" откроется в средствах разработки рядом с веб-страницей.
Чтобы получить список всех ссылок на странице, введите следующий код в консоли и нажмите клавишу ВВОД:
$$('a');
$$('a')является сокращением отdocument.querySelectorAll('a').Разверните список ссылок, зарегистрированных в консоли, а затем разверните первый объект ссылки. Отображаются свойства ссылки:
Чтобы уменьшить объем информации, возвращаемой функцией
$$(), используйтеmap()метод array. Методmap()работает, так как$$()функция возвращает массив.$$('a').map(a => { return {url: a.getAttribute("href"), text: a.innerText} });Приведенный выше код возвращает массив всех ссылок, где каждый объект ссылки сопоставляется с объектами
urlJavaScript со свойствами иtext.Разверните несколько возвращаемых объектов ссылки, чтобы увидеть их свойства:
Чтобы вывести список только внешних ссылок, используйте
filter()метод массива, чтобы избавиться от ссылок, которые не начинаются сhttps:$$('a').map(a => { return {url: a.getAttribute("href"), text: a.innerText} }).filter(a => { return a.url.startsWith("https"); });
Отображение элементов DOM в таблице
В предыдущем примере вы отображали список элементов со страницы в консоли. Элементы отображаются в виде массива JavaScript. Чтобы упростить использование списка элементов консоли, их можно отобразить в сортируемой таблице с помощью служебной console.table() функции:
Перейдите на веб-страницу, которую вы хотите проверить. Например, откройте демонстрационную страницу взаимодействия DOM в консоли DevTools в новой вкладке или окне.
Нажмите клавиши CTRL+SHIFT+J (Windows, Linux) или COMMAND+OPTION+J (macOS). Средство "Консоль" откроется в средствах разработки рядом с веб-страницей.
Вставьте следующий код в консоль и нажмите клавишу ВВОД:
console.table($$('img'), ['src','alt'])Список
<img>элементов на веб-странице отображается в консоли в виде таблицы, а атрибуты каждого изображенияsrcиaltв виде столбцов:
Получение всех заголовков страниц и URL-адресов привязки
В этом примере вы получите все заголовки веб-страницы с атрибутом id и создаете URL-адрес, указывающий на каждый заголовок.
Перейдите на веб-страницу, которую вы хотите проверить. Например, откройте демонстрационную страницу взаимодействия DOM в консоли DevTools в новой вкладке или окне.
Нажмите клавиши CTRL+SHIFT+J (Windows, Linux) или COMMAND+OPTION+J (macOS). Средство "Консоль" откроется в средствах разработки рядом с веб-страницей.
Скопируйте и вставьте следующий код в консоль и нажмите клавишу ВВОД:
let headings = $$('main [id]').filter(el => { return el.nodeName.startsWith('H'); }).map(el => { return `${el.innerText}: ${document.location.href}#${el.id}\n`; }); console.log(headings.join("\n"));Результатом будет текст, содержащий содержимое для каждого заголовка раздела, за которым следует полный URL-адрес заголовка раздела:
Копирование сведений из консоли
В предыдущих примерах вы создали списки элементов и строк информации. Можно скопировать созданные сведения из консоли и вставить их в другое место.
Чтобы скопировать возвращаемое значение из выражения, выполняемого в консоли, используйте служебную copy() функцию:
Перейдите на веб-страницу, с которой вы хотите извлечь некоторые сведения. Например, откройте демонстрационную страницу взаимодействия DOM в консоли DevTools в новой вкладке или окне.
Нажмите клавиши CTRL+SHIFT+J (Windows, Linux) или COMMAND+OPTION+J (macOS). Средство "Консоль" откроется в средствах разработки рядом с веб-страницей.
Чтобы скопировать список всех URL-адресов изображений на странице, введите следующий код в консоли и нажмите клавишу ВВОД:
copy($$('img').map(img => img.src).join("\n"));Служебная
copy()функция может принимать любой аргумент, который можно преобразовать в строку, и копировать его в буфер обмена. В этом примере аргумент представляет собой строку, содержащую все URL-адреса изображений на странице, разделенные новой строкой.Откройте текстовый редактор, например Visual Studio Code, а затем вставьте URL-адреса скопированного изображения в редактор:
Очистка консоли
При выполнении кода в консоли часто возникает много входных инструкций и выходных результатов, которые больше не нужно отображать. Консоль можно очистить с помощью служебной clear() функции.
Вывод списка прослушивателей событий, назначенных элементу
Чтобы получить список всех прослушивателей событий, назначенных элементу, используйте служебную getEventListeners() функцию:
Перейдите на веб-страницу, которую вы хотите проверить. Например, откройте демонстрационную страницу взаимодействия DOM в консоли DevTools в новой вкладке или окне.
Нажмите клавиши CTRL+SHIFT+J (Windows, Linux) или COMMAND+OPTION+J (macOS). Средство "Консоль" откроется в средствах разработки рядом с веб-страницей.
Щелкните средство "Проверка ", а затем на отображаемой веб-странице щелкните одно из изображений, чтобы выбрать его. Отобразится инструмент Элементы , а выбранный элемент изображения выделен в дереве DOM:
Откройте консоль , введите следующий код и нажмите клавишу ВВОД:
getEventListeners($0);В приведенном выше фрагменте
$0кода является ярлыком для выбранного<img>в данный момент элемента в инструменте Элементы . СлужебнаяgetEventListeners()функция возвращает объект, содержащий все прослушиватели событий, назначенные изображению.Разверните объект, а затем разверните единственный прослушиватель событий в списке, чтобы просмотреть свойства прослушивателя. Свойство
listenerпоказывает имя функции, вызываемой при активации события (в этом примереshowImage):
Мониторинг событий, активированных на странице
Веб-сайты, использующие JavaScript, часто реагируют на события пользователей, происходящие в браузере. Отслеживать все события, активированные браузером, может быть трудно. Служебная monitorEvents() функция позволяет отслеживать события, которые активируются на веб-странице.
Мониторинг всех событий в элементе
Чтобы начать мониторинг событий, выполните приведенные далее действия.
Перейдите на веб-страницу, которую вы хотите отслеживать. Например, откройте демонстрационную страницу взаимодействия DOM в консоли DevTools в новой вкладке или окне.
Нажмите клавиши CTRL+SHIFT+J (Windows, Linux) или COMMAND+OPTION+J (macOS). Средство "Консоль" откроется в средствах разработки рядом с веб-страницей.
Чтобы начать мониторинг событий, активируемых в элементе, например для одного из
<img>элементов, введите следующий код в консоли и нажмите клавишу ВВОД:monitorEvents(document.querySelector('img'));Приведенный выше код отслеживает все события, которые активируются в первом
<img>элементе на странице.На отображаемой веб-странице наведите указатель мыши на изображение и наведите указатель мыши или вкладку на изображение с помощью клавиатуры. Такие события, как
mouseover,mousemoveиfocusрегистрируются в консоли:
При мониторинге событий вы получаете журналы в консоли каждый раз, когда событие активируется браузером. Это может привести к возникновению большого шума в консоли. Вы также можете отслеживать определенные события в элементе.
Мониторинг определенных событий в элементе
Чтобы начать мониторинг определенных событий в элементе, выполните указанные действия.
Перейдите на веб-страницу, которую вы хотите отслеживать. Например, откройте демонстрационную страницу взаимодействия DOM в консоли DevTools в новой вкладке или окне.
Нажмите клавиши CTRL+SHIFT+J (Windows, Linux) или COMMAND+OPTION+J (macOS). Средство "Консоль" откроется в средствах разработки рядом с веб-страницей.
Чтобы начать мониторинг только событий указателя мыши, мыши и щелчка, которые активируются для первого
<img>элемента на странице, введите следующий код в консоли и нажмите клавишу ВВОД:monitorEvents(document.querySelector('img'), ['mousedown', 'mouseup', 'click']);На отображаемой веб-странице щелкните первое изображение.
mousedownСобытия ,mouseupиclickрегистрируются в консоли:
Мониторинг событий в окне
Чтобы получать уведомление в консоли при каждом прокрутке или изменении размера окна:
Вставьте следующий код в консоль:
monitorEvents(window, ['resize', 'scroll']);Прокрутите страницу и измените размер окна браузера. Консоль регистрирует события, которые активируются:
Остановить мониторинг событий
При мониторинге событий в DOM консоль может заиметь. Чтобы остановить события мониторинга, используйте служебную unmonitorEvents() функцию:
unmonitorEvents(document.querySelector('img'));
unmonitorEvents(document.querySelector('img'), ['mousedown', 'mouseup', 'click']);
unmonitorEvents(window, ['resize', 'scroll']);
Сохранение скриптов взаимодействия DOM в виде фрагментов кода
Если вы несколько раз вводите один и тот же код взаимодействия DOM в консоли, вместо этого попробуйте сохранить код в виде фрагмента кода, а затем запустить его. Фрагменты сохраняются в средстве "Источники" , и их можно запускать оттуда или из меню "Команда". Дополнительные сведения см. в статье Запуск фрагментов Кода JavaScript на любой веб-странице.