Почему Tampermonkey перестаёт работать в Яндекс Браузере

Tampermonkey — менеджер пользовательских скриптов: расширение, которое хранит небольшие программы на JavaScript и запускает их на страницах, адрес которых совпадает с правилом в заголовке скрипта. Яндекс Браузер построен на движке Chromium, поэтому Tampermonkey в нём ведёт себя как в других браузерах этого семейства, но со своими особенностями: у Яндекса собственная защита расширений, своя страница настроек и своё поведение на смартфонах.

Когда скрипты не срабатывают, причина почти всегда в одном из пяти мест:

  • расширение выключено или отключено защитой браузера;
  • не включён режим разработчика, без которого новые версии Tampermonkey не запускают скрипты;
  • сам скрипт выключен в панели управления или не подходит к адресу страницы;
  • расширению не разрешена работа в режиме инкогнито или на этом сайте;
  • скрипт при установке не смог загрузить внешние части из-за нестабильного интернета.

Проверять стоит в таком порядке: от самого частого к самому редкому.

Как убедиться, что расширение включено

  1. Откройте меню браузера и перейдите в раздел «Дополнения». Туда же ведёт адрес browser://tune, набранный в адресной строке.
  2. Найдите Tampermonkey в списке. Переключатель напротив должен быть во включённом положении.
  3. Если рядом стоит пометка, что расширение отключено из соображений безопасности, нажмите на неё и прочитайте пояснение. Яндекс Браузер вправе выключить расширение, установленное не из своего каталога, или после обновления, которое его защита сочла подозрительным.
  4. Расширение, установленное из каталога Chrome, Яндекс Браузер сначала держит выключенным и показывает запрос на включение. Его нужно принять, иначе значок появится, а скрипты не запустятся.
  5. Включите расширение заново и перезагрузите страницу, на которой ждёте скрипт.
  6. Если значок Tampermonkey не появился на панели, откройте список расширений кнопкой рядом с адресной строкой и закрепите его.

Отдельный случай: значок есть, но серый. Нажмите на него — в выпадающем меню первым пунктом стоит общий переключатель «Включено». Его несложно задеть случайно, и тогда все скрипты молчат при формально работающем расширении.

Что делать, если Tampermonkey требует режим разработчика

Режим разработчика — настройка на странице расширений, которая разрешает им пользоваться расширенными возможностями браузера. В версиях Tampermonkey, собранных под новый формат расширений Chromium (Manifest V3), запуск пользовательских скриптов без этой настройки невозможен: расширение установлено, список скриптов виден, но на страницах ничего не происходит. Tampermonkey обычно показывает в своей панели предупреждение об этом, но его легко пропустить.

  1. Введите в адресную строку browser://extensions и нажмите Enter.
  2. В правом верхнем углу найдите переключатель «Режим разработчика» и включите его.
  3. Полностью закройте браузер и откройте снова: одной перезагрузки страницы здесь не хватает.
  4. Откройте панель Tampermonkey и проверьте, исчезло ли предупреждение.

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

Скрипт установлен, но на нужном сайте не срабатывает

Если общий переключатель включён, а конкретный скрипт не работает, смотрите на сам скрипт. Нажмите значок Tampermonkey и откройте «Панель управления»: там список всего установленного.

Что видно в панелиЧто это значитЧто сделать
Переключатель у скрипта выключенСкрипт отключён вручную или после ошибкиВключить и обновить страницу
Число на значке расширения — нольНи один скрипт не подходит к адресу страницыПроверить строки @match и @include в коде
Скрипт помечен как устаревшийАвтор выпустил новую версиюЗапустить проверку обновлений в панели
Скрипта нет вовсеУстановка не завершиласьУстановить заново из исходного файла

Частая ситуация: сайт переехал на новый адрес или сменил протокол, а в правиле скрипта остался старый. Tampermonkey сравнивает адрес буквально: страницы с www и без, по http и по https для него разные. Править правило стоит, только если вы понимаете, что делаете; иначе дождитесь обновления от автора.

Если скрипт включён и подходит к адресу, но всё равно молчит, подробности об ошибке видны в консоли разработчика браузера: клавиша F12, вкладка Console. Сообщение с именем скрипта показывает, на какой строке он остановился, и это полезно передать автору, если скрипт чужой.

Ещё две настройки отключают скрипты на части сайтов: разрешение «Доступ к сайтам» в свойствах расширения (должно стоять «на всех сайтах», если вы не ограничивали его сознательно) и разрешение работать в режиме инкогнито — по умолчанию оно выключено.

Как ведёт себя Tampermonkey при ограниченном мобильном интернете

Само расширение работает локально и в сети не нуждается, но скрипты — нуждаются. Многие из них при установке подгружают внешние библиотеки через директиву @require, а затем по расписанию проверяют обновления. На медленном или прерывающемся мобильном соединении это даёт три характерных сбоя:

  • установка зависает на окне подтверждения, потому что внешняя часть не докачалась; скрипт либо не появляется в списке, либо появляется неработающим;
  • проверка обновлений заканчивается ошибкой, и Tampermonkey помечает скрипт как проблемный;
  • страница грузится дольше обычного, скрипт запускается раньше, чем появились нужные ему элементы, и ничего не меняет.

Если сбой появился именно в поездке или при слабом сигнале, не переустанавливайте скрипт по мобильной сети: неполная установка поверх старой хуже, чем прежняя рабочая версия. Дождитесь устойчивого соединения и запустите проверку обновлений из панели.

На смартфоне ситуация отдельная. Яндекс Браузер для Android поддерживает часть расширений из каталога Chrome, но Tampermonkey в нём может не устанавливаться или не запускать скрипты — это зависит от версии браузера. Рассчитывать на него как на основной инструмент в телефоне не стоит.

Что сделать заранее, пока связь устойчивая

  1. Включите режим разработчика и перезапустите браузер, не дожидаясь, пока скрипты откажут.
  2. Откройте панель Tampermonkey и запустите проверку обновлений для всех скриптов вручную.
  3. В разделе служебных функций панели выгрузите скрипты в файл и сохраните его вне браузера: после переустановки или сброса профиля его можно импортировать без доступа к исходным источникам.
  4. Запишите, откуда брали каждый скрипт: при проблемах свежую версию вы будете искать именно там.
  5. Не держите два менеджера скриптов одновременно: Tampermonkey и похожее расширение перехватывают одни и те же страницы и мешают друг другу.

И последнее, о безопасности. Пользовательский скрипт выполняет произвольный код на страницах, включая страницы банков и почты. Устанавливайте только то, чей источник вам известен, и не включайте скрипт, который просит ввести куда-то пароль или код из СМС.