Если JavaScript на странице не отрабатывает — не открывается меню, не считается корзина, не крутится слайдер — первым делом откройте консоль разработчика (F12, вкладка Console). В 90% случаев там сразу видна ошибка с указанием файла и строки, откуда всё и начинается.
Какие ошибки встречаются чаще всего
- 404 на файл скрипта — путь подключения неверный (относительный путь ломается при переносе страницы в другую папку, или файл переименовали/удалили).
- Uncaught ReferenceError — скрипт использует переменную или функцию из библиотеки, которая ещё не загрузилась к этому моменту (неправильный порядок подключения тегов <script>).
- Uncaught TypeError: $ is not a function — классика: подключено две версии jQuery, или jQuery подключён после скрипта, который его использует.
- Mixed Content — сайт открыт по HTTPS, а скрипт подключается по HTTP: браузер молча блокирует такой запрос.
- Ошибка синтаксиса в самом файле — пропущенная скобка или запятая обрывает выполнение всего скрипта целиком.
Почему скрипт может блокироваться, даже если ошибок нет
Иногда в консоли пусто, а функциональность всё равно не работает. Причины:
- Расширение-блокировщик рекламы в браузере пользователя режет скрипт по названию файла или домену — стоит проверить страницу в режиме инкогнито без расширений.
- Заголовок Content-Security-Policy на сервере запрещает выполнение inline-скриптов или загрузку с внешнего домена — это тоже видно в консоли отдельным предупреждением, но не всегда бросается в глаза.
- Кэш браузера или CDN отдаёт старую версию файла — после правки скрипта нужно сбросить кэш (Ctrl+F5) и, если используется CDN, очистить кэш и там.
- Атрибуты async/defer меняют порядок выполнения скриптов относительно друг друга — если один скрипт зависит от другого, порядок загрузки может нарушиться.
Как найти проблему пошагово
Откройте DevTools → вкладку Network, обновите страницу и проверьте, что все .js-файлы загружаются со статусом 200, а не 404 или 403. Затем во вкладке Console посмотрите на первую ошибку сверху — часто именно она обрывает выполнение остальных скриптов на странице. Если ошибок нет, но код не выполняется — добавьте временно console.log в начало функции, чтобы проверить, доходит ли до неё вызов вообще.
Если правите код через плагин или конструктор сайта (Tilda, WordPress-плагин типа «Insert Headers and Footers» и т.п.) — проверьте, что скрипт вставлен именно в тот раздел (head/footer), который ожидает конструктор, иначе он может дублироваться или не подключаться на нужных страницах.
Если самостоятельно найти причину не получается, стоит показать код и скриншот консоли разработчику — по конкретной ошибке проблема обычно решается за несколько минут.