JavaScript в параметрах Яндекс.Браузера: исчерпывающие настройки
Основные способы управления JavaScript в Яндекс.Браузере
Как добиться гибкого контроля над выполнением скриптов?
Наиболее эффективное решение - использование встроенных настроек браузера Яндекс. Этот способ позволяет включать или отключать JavaScript глобально, а также задавать исключения для отдельных сайтов.
- Открыть меню браузера (три горизонтальные полоски в правом верхнем углу) и выбрать пункт «Настройки».
- В боковом меню перейти в раздел «Сайты».
- Найти подраздел «JavaScript» и переключатель для полного отключения или включения.
- Для тонкой настройки нажать «Добавить» под списком «Разрешено» или «Заблокировано» и указать 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 не выполняется ни на одной странице.
Этот флаг отключает все скрипты без возможности включения через настройки. Подходит для автоматизированного тестирования или изолированного просмотра статического контента.