JavaScript в параметрах Яндекс.Браузера: исчерпывающие настройки

Раздел: Администрирование -> настройка браузера

Основные способы управления JavaScript в Яндекс.Браузере

Как добиться гибкого контроля над выполнением скриптов?

Наиболее эффективное решение - использование встроенных настроек браузера Яндекс. Этот способ позволяет включать или отключать JavaScript глобально, а также задавать исключения для отдельных сайтов.

  1. Открыть меню браузера (три горизонтальные полоски в правом верхнем углу) и выбрать пункт «Настройки».
  2. В боковом меню перейти в раздел «Сайты».
  3. Найти подраздел «JavaScript» и переключатель для полного отключения или включения.
  4. Для тонкой настройки нажать «Добавить» под списком «Разрешено» или «Заблокировано» и указать URL сайта.

Типичные ошибки

  • После глобального отключения JavaScript многие веб-сервисы (включая почту Яндекс, карты, онлайн-банкинг) перестают корректно работать. Решение: добавлять критически важные сайты в список разрешённых.
  • Изменения не применяются к уже открытым вкладкам - требуется перезагрузить страницу (Ctrl+F5).
  • Настройки могут быть перезаписаны корпоративной политикой, если браузер управляется администратором.

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

Вариант 1. Групповые политики (файл policies.json)

Как централизованно настроить JavaScript для всех пользователей организации? Ответ - использование файла политик.

Яндекс.Браузер (на базе Chromium) поддерживает групповые политики. Для их применения необходимо создать файл policies.json в папке браузера (например, /etc/opt/yandex/browser/policies/managed/ в Linux или C:\Users\%USERNAME%\AppData\Local\Yandex\YandexBrowser\User Data\ в Windows). Пример содержимого:

{
  "DefaultJavaScriptSetting": 2,
  "JavaScriptBlockedForUrls": ["*://*.example.com/*"],
  "JavaScriptAllowedForUrls": ["*://yandex.ru/*"]
}

как включить javascript (как включить javascript)

Где DefaultJavaScriptSetting: 2 - блокировка JS по умолчанию, 1 - разрешение. После перезапуска браузера настройки применяются ко всем профилям.

Возможные проблемы

  • Неверный синтаксис JSON (лишняя запятая, неправильные кавычки) приводит к игнорированию всего файла. Решение: проверять через валидатор JSON.
  • Путь к папке политик зависит от версии ОС - уточняется в документации.
  • Изменения вступают в силу только после полного перезапуска браузера.

Цель: корпоративное администрирование, когда нужно единообразно настроить сотни машин.

Вариант 2. Экспериментальные флаги (about:flags)

Как опробовать новую функциональность до её стабильного релиза? Через страницу флагов.

В адресной строке ввести about:flags (или chrome://flags). Найти флаги, связанные с JavaScript, например, #enable-javascript или #disable-javascript. Статус флага меняется на «Включено» или «Отключено». Перезапуск браузера обязателен.

Сложности

  • Флаги могут исчезать в новых версиях браузера без предупреждения.
  • Ошибочное изменение других флагов способно нарушить работу вкладок. Решение: возвращать изменённые флаги в состояние «По умолчанию» через кнопку «Сбросить всё».

Цель: тестирование новых возможностей JS-движка, временные настройки в изолированной среде.

Вариант 3. Расширения для блокировки скриптов

Как точечно блокировать JavaScript на отдельных страницах без изменения глобальных настроек? Использовать расширения (например, uBlock Origin или NoScript).

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

Недостатки

  • Увеличение потребления памяти и процессора.
  • Конфликты между разными расширениями, управляющими скриптами. Решение: использовать только одно такое расширение.
  • Некоторые сложные страницы могут «сломаться» при включении строгой блокировки - потребуется вручную разрешать отдельные домены.

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

Вариант 4. Chrome DevTools Protocol (программное управление)

Как автоматизировать настройку JavaScript через скрипт? Использовать протокол DevTools.

Запустить Яндекс.Браузер с флагом --remote-debugging-port=9222. Затем через WebSocket отправлять команды, например:

{
  "id": 1,
  "method": "Emulation.setScriptExecutionDisabled",
  "params": {"value": true}
}

Эта команда отключает выполнение скриптов на текущей вкладке. Для постоянного применения потребуется интегрироваться в автоматизированное тестирование.

Сложности

  • Требуется знание протокола и навыки работы с сетевыми запросами.
  • Настройки живут только до закрытия вкладки. Решение: переотправлять команды при загрузке новых страниц.

Цель: интеграция в CI/CD, тестирование поведения сайта без JavaScript.

Расширенные примеры настройки JavaScript

Пример расширенного policies.json для сложных сценариев

Пример
{
  "DefaultJavaScriptSetting": 2,
  "JavaScriptBlockedForUrls": [
    "*://*.doubleclick.net/*",
    "*://*.google-analytics.com/*"
  ],
  "JavaScriptAllowedForUrls": [
    "*://yandex.ru/*",
    "*://[*.]yandex.net/*",
    "*://mail.yandex.ru/*"
  ],
  "BlockThirdPartyCookies": true,
  "CookiesSessionOnlyForUrls": ["*://*.bank.ru/*"]
}
Результат: все скрипты заблокированы, кроме указанных доменов Яндекса; сторонние куки блокируются, для банковских сайтов куки удаляются при закрытии вкладки.

PowerShell скрипт для развёртывания политик в Windows

Пример
$policyPath = "$env:LOCALAPPDATA\Yandex\YandexBrowser\User Data\Default\policies.json"
$policy = @{
    DefaultJavaScriptSetting = 2
    JavaScriptAllowedForUrls = @("*://yandex.ru/*")
} | ConvertTo-Json
Set-Content -Path $policyPath -Value $policy -Encoding UTF8
Write-Host "Политики установлены. Перезапустите браузер."
Вывод: Политики установлены. Перезапустите браузер.

Использование CDP для временного отключения JS на текущей вкладке (Node.js)

Пример
const WebSocket = require('ws');
const ws = new WebSocket('ws://127.0.0.1:9222/devtools/page/1');
ws.on('open', () => {
    ws.send(JSON.stringify({
        id: 1,
        method: 'Emulation.setScriptExecutionDisabled',
        params: { value: true }
    }));
});
ws.on('message', data => console.log('Ответ:', data));
Ответ: {"id":1,"result":{}}

После выполнения скрипта на странице перестают выполняться все скрипты, включая асинхронные. Для восстановления отправить команду с value: false.

Пользовательский скрипт для Tampermonkey, отключающий скрипты аналитики на всех сайтах

Пример
// ==UserScript==
// @name         Block Analytics JS
// @match        *://*/*
// @run-at       document-start
// ==/UserScript==

(function() {
    const blocked = [
        'google-analytics.com',
        'mc.yandex.ru',
        'doubleclick.net'
    ];
    const observer = new MutationObserver(function(mutations) {
        mutations.forEach(function(mutation) {
            mutation.addedNodes.forEach(function(node) {
                if (node.tagName === 'SCRIPT') {
                    const src = node.src || '';
                    if (blocked.some(domain => src.includes(domain))) {
                        node.remove();
                        console.log('Заблокирован скрипт:', src);
                    }
                }
            });
        });
    });
    observer.observe(document.documentElement, { childList: true, subtree: true });
})();
Результат: на каждой странице скрипты с указанными доменами удаляются до их выполнения. В консоли появляются сообщения о блокировке.

Запуск Яндекс.Браузера с полностью отключённым JavaScript из командной строки

Пример
browser --disable-javascript --incognito
Браузер открывается в режиме инкогнито, JavaScript не выполняется ни на одной странице.

Этот флаг отключает все скрипты без возможности включения через настройки. Подходит для автоматизированного тестирования или изолированного просмотра статического контента.

javascript в яндекс - comments

En
Javascript яндекс (javascript)