Консоль

Консоль предлагает способ проверить и отладить Ваши веб-страницы. Думайте о нем как о Терминале Вашего веб-контента. Консоль имеет доступ к DOM и JavaScript открытой страницы. Используйте консоль в качестве инструмента для изменения веб-контента через интерактивные команды и как учебное пособие развернуть знание JavaScript. Поскольку методы и свойства объекта автоматически заполняют, как Вы вводите, Вы видите все доступные функции, которые допустимы в Safari.

Например, откройте консоль и тип $$(‘p’)[1]. ($$ сокращение для document.querySelectorAll— посмотрите больше кратких команд в Таблице 5-1.), Поскольку этот абзац является вторым экземпляром p элемент на этой странице ([1] в индексе на основе 0), узел представляет этот абзац. Поскольку Вы нависаете над узлом, его позиция на странице явно выделяется. Можно развернуть узел, чтобы видеть его содержание, и даже нажать Command-C для копирования его в буфер обмена.

Командная строка API

Можно проверить узлы HTML и объекты JavaScript более подробно при помощи консольных команд, перечисленных в Таблице 5-1. Введите командную строку APIs в интерактивном режиме в консоли.

Если Ваши сценарии совместно используют то же имя функции как API-функция Командной строки, функция в Ваших сценариях имеет приоритет.

Табличные 5-1  Команды, доступные в веб-консоли Inspector

Команда

Описание

$(селектор)

Сокращение для document.querySelector.

$$(селектор)

Сокращение для document.querySelectorAll.

$x(xpath)

Возвращает массив элементов, соответствующих данное выражение XPath.

$0

Представляет в настоящее время выбираемый узел в браузере содержания.

$1.. 4

Представляет последнее, предпоследнее, третье для длительности, и четвертый для длительности выбранного узла в браузере содержания, соответственно.

$_

Возвращает значение последнего оцененного выражения.

dir(объект)

Печать все свойства объекта.

dirxml(объект)

Печать все свойства объекта. Если объект является узлом, распечатывает узел и все дочерние узлы.

keys(объект)

Распечатывает массив имен собственных свойств объекта.

values(объект)

Распечатывает массив значений собственных свойств объекта.

profile([заголовок])

Запускает профилировщика JavaScript. Дополнительный аргумент title содержит строку, которая будет распечатана в заголовке отчета профиля. Посмотрите, что JavaScript Профилирует.

profileEnd()

Останавливает профилировщика JavaScript и распечатывает его отчет. Посмотрите, что JavaScript Профилирует.

getEventListeners(объект)

Распечатывает объект, содержащий присоединенных слушателей события объекта.

monitorEvents(объект [типы])

Начинает регистрировать все события, диспетчеризированные данному объекту. Дополнительный аргумент types определяет определенные события или типы событий для журналирования, такие как «щелчок».

unmonitorEvents(объект [типы])

Журналирование остановок для всех событий, диспетчеризированных данному объекту. Дополнительный аргумент types определяет определенные события или типы событий, чтобы прекратить регистрировать, такие как «щелчок».

inspect(объект)

Проверяет данный объект; это совпадает с нажатием кнопки Inspect.

copy(объект)

Копирует данный объект в буфер обмена.

clear()

Очищает консоль.

Функции, перечисленные в Таблице 5-1, являются регулярными функциями JavaScript, которые являются частью веб-среды Инспектора. Это означает, что можно использовать их, поскольку Вы были бы любой JavaScript функционировать. Например, можно присвоить цепочку команд Console API к переменной для создания полезного сокращения. Перечисление 5-1 показывает, как можно быстро видеть все типы событий, присоединенные к выбранному узлу.

Перечисление 5-1  Считает события присоединенными к этому элементу

var evs = function () {
    return keys(getEventListeners($0));
};

После определения этой функции проверьте лупу в верхнем правом углу этой веб-страницы и тип evs() в консоли. Массив, содержащий строку «щелчок», возвращается, потому что существует слушатель события щелчка, присоединенный к тому элементу.

Конечно, эти функции не должны быть включены в файлы JavaScript Вашего веб-сайта, потому что они не доступны в среде браузера. Только используйте эти функции в веб-консоли Inspector. Консоль функционирует, можно включать в сценарии, описаны в Консоли API.

Консоль API

Вы можете выходные сигналы к консоли, добавить маркеры к временной шкале и управлять отладчиком непосредственно из Ваших сценариев при помощи команд, перечисленных в Таблице 5-2.

Таблица 5-2  функции JavaScript, доступные в Консоли API

Функция

Описание

console.assert(expression, object)

Утверждает, является ли данное выражение истиной. Если утверждение приводит к сбою, распечатывает ошибку и постепенно увеличивает число ошибок в средстве просмотра действия. Если утверждение успешно выполняется, печать ничто.

console.clear()

Очищает консоль.

console.count([title])

Распечатывает число раз, эту строку вызвали.

console.debug(object)

Псевдоним console.log().

console.dir(object)

Распечатывает свойства и значения объекта.

console.dirxml(node)

Распечатывает дерево DOM HTML или узла XML.

console.error(object)

Распечатывает сообщение к консоли со значком ошибки. Постепенно увеличивает число ошибок, показанных в средстве просмотра действия.

console.group([title])

Распечатывает последующие журналы при раскрытии данного заголовка.

console.groupEnd()

Заканчивает ранее заявленную консольную группировку.

console.info(object)

Псевдоним console.log().

console.log(object)

Распечатывает объект к консоли со значком журнала. Постепенно увеличивает число журналов, показанных в средстве просмотра действия.

console.markTimeline(метка)

Отмечает Временную шкалу с зеленой вертикальной пунктирной линией, указывающей, когда вызвали эту строку кода. Посмотрите Временные шкалы Записи.

console.profile([заголовок])

Запускает профилировщика JavaScript. Дополнительный аргумент title содержит строку, которая будет распечатана в заголовке отчета профиля. Посмотрите, что JavaScript Профилирует.

console.profileEnd([заголовок])

Останавливает профилировщика JavaScript и распечатывает его отчет. Посмотрите, что JavaScript Профилирует.

console.time(имя)

Запускает таймер, связанный с именем. Полезный для синхронизации продолжительности сегментов кода.

console.timeEnd(имя)

Останавливает таймер, связанный с именем, и распечатывает прошедшее время к консоли.

console.trace()

Распечатывает отслеживание стека в данный момент, функция вызвана. Посмотрите рисунок 4-2.

console.warn(объект)

Распечатывает сообщение к консоли со значком предупреждения. Постепенно увеличивает число предупреждений, показанных в средстве просмотра действия.

debugger

Остановки выполнение JavaScript в текущей строке. Это - эквивалент установки точки останова программно. Посмотрите Точки останова.