Советы для легкой отладки пользовательских сценариев, а также частые крайние случаи для учитывания.
Советы
Не всегда обязательно перезагружать расширение
Не обязательно перезагружать расширение через chrome://extensions при изменении уже существующих файлов JavaScript или CSS. В тех случаях, достаточно просто перезагрузить страницу.
Используйте интерфейс addon.* из консоли
Объект addon доступен из консоли браузера через глобальную переменную __addon, если хотя бы одно дополнение включено.
Установка точек остановки с помощью ключевого слова “debugger”
Ключевое слово debugger; в JavaScript заморозит страницу при использовании, если инструменты для разработчика открыты. Установление точек остановки довольно полезно для всматривания в значения локальных переменных при исполнении.
Фильтр консольных сообщений через идентификатор дополнения
Введите ID дополнения на строке поиска консоли “фильтр” для просмотра сообщений, предупреждений, а также ошибок, отправленных в журнал с помощью console.error(). Важно помнить, что это спрячет все исключения, если Вы прямо не журналируете их в Вашем коде.
Крайние случаи
Страница проектов Scratch и редактор
DOM уничтожена после входа в и выхода из редактора
Scratch создаёт все элементы HTML каждый раз, когда пользователь щёлкает “посмотреть внутрь” или “посмотреть страницу проекта”, уничтожая старые.
Обычно это можно исправить использованием addon.tab.waitForElement или события urlChange.
Язык редактора Scratch можно изменить без перезагрузки
В отличии от самого веб-сайта Scratch, редактор Scratch не перезагрузится при изменении языка. При избирании другого языка? Scratch может уничтожить и пересоздать некоторые элементы HTML.
Другие важные ситуации
- Редактор проектов можно использовать без определённого ID проекта (например, когда Вы не вошли в аккаунт).
- Редактор может переключаться с LTR на RTL (также наоборот) без перезагрузки страницы.
Веб-сайт Scratch
страницы scratch-www не перезагружаются после входа в аккаунт
В отличии от страниц scratchr2, страницы scratch-www не требуют перезагрузки страницы после входа. К примеру, если Вы перейдёте на страницу проекта, не войдя в систему, а потом войдёте, то страница не перезагрузится. Это также случается со студиями, со страницой сообщений и так далее. Напротив, все страницы Scratch перезагружаются после выхода.
Страницы проектов никогда не возвращают 404
Даже если проект личен или не существует, Scratch отправляет статус 200. Сообщение “наш сервер в недоумении” Scratch добавляет на сайт динамически.
Другие важные ситуации
- Каждая из 4-ёх вкладок в студиях имеет свой URL, но не вызывает навигацию браузера. Дополнения, влияющие на любую из 4-ёх страниц должны воспроизводиться, несмотря на первоначальную гиперссылку.
Комментарии
Не забывайте соблюдать свод правил. Вы можете их увидеть в секции комментариев в обсуждениях GitHub, а также во время редактирования и удаления своего комментария.