Статьи

Следует ли разрешать пользователям отключать JavaScript?

Убирайся с моего газона! Разрешить ли пользователям отключать JavaScript в 2017 году?

Последний раз я поднимал этот вопрос еще в 2013 году, когда Mozilla решила удалить параметр «отключить JavaScript» из диалогового окна настроек в Firefox 23. Основная причина:

  • Большая часть современного Интернета может безуспешно сломаться без JavaScript.
  • Это спасает пользователей от себя. Мало кто знает, что такое JavaScript, и еще меньше нужно его отключать.
  • Те, кто может найти скрытые варианты в другом месте, если они действительно нуждаются в этом.

Отключение JavaScript остается опцией для тех, кто в курсе.

Читать современный JavaScript
Будьте в курсе развивающегося мира JavaScript

Эта популярная статья была обновлена ​​с учетом сейсмического сдвига в ландшафте JavaScript с момента ее первоначального опубликования в 2013 году.

Преимущества пользователей от отключения JavaScript?

Возможно: обратитесь к Я выключил JavaScript на целую неделю, и это было великолепно . Без JavaScript волшебная сеть появляется без раздувания, рекламы, всплывающих окон, предупреждений о cookie-файлах, прокрутки прокрутки и многих других темных шаблонов, с которыми мы сталкиваемся сегодня .

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

Содержимое статьи обычно видно, но недостатком является то, что многие веб-приложения не работают без JavaScript. Некоторые предоставляют пониженный опыт, но он может сломать магазины, карты, игры и сайты социальных сетей. Контентные сайты, основанные на современных клиентских приложениях, могут показывать только пустую страницу.

Можете ли вы запретить пользователям отключать JavaScript?

Нет!

Владельцы сайтов или разработчики не могут заставить пользователей загружать и запускать JavaScript. Браузеры «вытягивают» файлы с вашего сервера; пользователь может остановить это через настройки браузера, прокси-методы, плагины или ряд других вариантов перехвата.

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

Можете ли вы поддержать тех, кто без JavaScript?

Мало кто активно отключает скрипты. Соблазнительно думать, что эти пользователи заслуживают всего, что они (не) получают, но реальность более проблематична. JavaScript хрупок; Ваши сценарии могут сломаться по следующим причинам:

  • HTTP-запрос не выполняется
  • запрос не выполнен
  • брандмауэр заблокировал ответ
  • поставщик услуг заблокировал или изменил скрипт
  • плагин браузера перехватил или изменил скрипт
  • браузер не поддерживает код или средства, которые вам требуются
  • другой скрипт вызывает ошибку, которая останавливает выполнение всех скриптов

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

Решением по-прежнему является прогрессивное улучшение . Вы создаете простейший HTML-интерфейс и затем расширяете его с помощью изображений, шрифтов, CSS и JavaScript, когда эти файлы успешно загружаются и выполняются. Ваш JavaScript может определять, когда API / средства доступны для:

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

Пользователи могут получить другой опыт. Те, кто использует последнюю версию Chrome на рабочем столе, могут получить наивысший уровень функциональности. Те, кто работает с Opera Mini на двухлетнем мобильном телефоне, могут получить страницу в базовом стиле. Важно, что каждый что-то получает, а сайт / приложение остается доступным для всех.

Прогрессивное улучшение стоит усилий?

Это решение для вас и приложения, которое вы создаете.

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

Более простые приложения также могут принести пользу. Приложение, которое отправляет сообщения в социальную сеть, требует чуть больше, чем форма HTML5 и некоторая внутренняя обработка. Затем Progressive Enhancement улучшает работу, удаляя обновление страницы, добавляя стили, внедряя проверку ввода, обеспечивая подсчет символов, обрабатывая ошибки, делая работу в автономном режиме и многое другое.

Прогрессивное улучшение становится менее жизнеспособным для приложений с богатыми пользовательскими интерфейсами, таких как офисное программное обеспечение, картография, редактирование изображений и игры. Решение только для HTML и CSS может быть слишком громоздким, чтобы быть практичным. Тем не менее, вы должны показать что-то, даже если это просто «извините, вам нужен JavaScript» .

Блокировка JavaScript в 2017 году и далее

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

Только Microsoft Edge затрудняет отключение JavaScript. Возможно, это потому, что JavaScript стал неотъемлемой частью Windows 10, а не упущением в Edge? Если вам это не нравится, вы можете установить любой другой браузер или использовать прокси для удаления файлов .js

Браузеры на основе Blink идут дальше и позволяют пользователям включать или отключать JavaScript для каждого сайта отдельно. Это отличный вариант, хотя еще меньше людей, вероятно, будут поддерживать черные и белые списки URL.

Продавцы постоянно стремятся улучшить производительность. Несмотря на зависимость Google от рекламы, даже Chrome вскоре получит встроенный блокировщик рекламы. Следующий шаг: могут ли поставщики блокировать JavaScript на сайтах с низкой производительностью? Это простая победа: им просто нужно предоставить свои собственные черные списки с отключением JavaScript, как и на вредоносных сайтах и ​​в системах блокировки рекламы.

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

Как отключить JavaScript

Вот как отключить JavaScript в большинстве современных браузеров.

Гугл Хром

Chrome 59 предлагает более элегантный набор параметров, и вы можете отключить JavaScript для каждого сайта отдельно:

  1. Зайдите на любой сайт и нажмите значок «Информация о сайте» слева от адресной строки.
  2. Меню позволяет вам разрешить или заблокировать JavaScript на этом сайте.

Вы можете отключить его глобально, нажав «Настройки сайта» в этом меню или в основных настройках:

  1. Выберите Настройки из трехточечного значка меню.
  2. Прокрутите вниз и нажмите Дополнительно .
  3. Нажмите Настройки контента в разделе Конфиденциальность и безопасность .
  4. Нажмите JavaScript .
  5. Нажмите Разрешено (рекомендуется), чтобы изменить его на Блокировать .

Вы также можете добавить URL-адреса или регулярные выражения, чтобы заблокировать и разрешить JavaScript на определенных сайтах.

Google Chrome Mobile (Android)

Аналогичный процесс представлен в мобильной версии Chrome:

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

После блокировки вы можете добавлять исключения URL.

Mozilla Firefox

В Firefox нет простого варианта. Чтобы отключить JavaScript:

  1. Введите about: config в адресную строку и примите любые предупреждения.
  2. Введите javascript в поле поиска.
  3. Дважды щелкните javascript.enabled, чтобы изменить значение на false .
  4. Закройте вкладку и перезапустите браузер.

Safari (Mac OS)

Чтобы отключить JavaScript в Safari в Mac OS:

  1. Запустите браузер и нажмите Safari в меню в верхней части экрана.
  2. Выберите « Настройки» .
  3. Перейдите на вкладку « Безопасность ».
  4. Снимите флажок Включить JavaScript в разделе веб-материалов .

Safari (iOS для iPhone и iPad)

Чтобы отключить JavaScript в версии Safari для iPhone или iPad:

  1. Откройте настройки на главном экране.
  2. Прокрутите вниз и коснитесь Safari .
  3. Нажмите « Дополнительно» в нижней части экрана.
  4. Нажмите кнопку JavaScript , чтобы включить или отключить.

Microsoft Edge (Windows 10)

Последний выпуск Windows 10 не позволяет отключать JavaScript.

В некоторых более ранних выпусках можно было изменить параметры в редакторе локальной групповой политики : Конфигурация пользователя> Административные шаблоны> Компоненты Windows> Microsoft Edge, а затем изменить. Позволяет запускать сценарии, такие как JavaScript, чтобы отключить .

Microsoft Internet Explorer

JavaScript включается или отключается через диалоговое окно « Свойства обозревателя », доступное из панели управления Windows или из меню IE.

  1. Выберите вкладку « Безопасность ».
  2. Нажмите кнопку Пользовательский уровень… .
  3. Прокрутите вниз до раздела « Сценарии » вниз.
  4. Выберите Отключить в активных сценариях .
  5. Нажмите OK, затем OK снова.

опера

Чтобы отключить JavaScript в Opera:

  1. Выберите « Настройки» в меню значка Opera.
  2. Либо нажмите Веб-сайты в левом меню, либо введите javascript в поле «Настройки поиска».
  3. Выберите Не разрешать любому сайту запускать JavaScript .

Нажмите Управление исключениями…, чтобы ввести URL-адреса или регулярные выражения, для которых можно автоматически разрешать или блокировать JavaScript.

Vivaldi

Вивальди использует тот же движок Blink, что и Chrome и Opera, но вы не найдете JavaScript на стандартной панели настроек. Чтобы отключить сценарии:

  1. Зайдите на любой сайт и нажмите значок «Информация о сайте» слева от адресной строки.
  2. Меню позволяет вам разрешить или заблокировать JavaScript на этом сайте.

Вы также можете настроить JavaScript на глобальном уровне:

  1. Выберите Настройки сайта в нижней части меню «Информация о сайте», чтобы получить доступ к настройкам Blink.
  2. Выберите Не разрешать любому сайту запускать JavaScript .

Нажмите Управление исключениями…, чтобы ввести URL-адреса или регулярные выражения, для которых можно автоматически разрешать или блокировать JavaScript.

Храбрый

Чтобы отключить JavaScript в Brave:

  1. Нажмите на логотип Brave в правом верхнем углу.
  2. Для отдельных сайтов включите Block Scripts .

Для глобальных настроек:

  1. Нажмите Изменить настройки щита по умолчанию … во всплывающем окне.
  2. Перейдите на вкладку « Настройки ».
  3. Установите Block Scripts (сломает много сайтов) .

Альтернативные варианты

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

Большинство инструментов разработчика (кроме Edge?) Позволяют отключать JavaScript, но обычно это относится только к активной вкладке и сеансу.

Вывод

Как упоминалось выше, вопрос «смогут ли пользователи отключить JavaScript» не имеет большого значения в 2017 году. Пользователи всегда смогут запретить выполнение JavaScript независимо от того, как производители показывают или скрывают расширенные настройки, но мало кто будет беспокоиться . Должны ли мы обслуживать этих пользователей без JavaScript, во многом зависит от приложения, которое вы создаете. Но здравый смысл подсказывает: чем доступнее ваш контент, тем большую аудиторию вы можете привлечь.

Но что вы думаете? Я хотел бы услышать от вас в комментариях ниже.

Эта статья была рецензирована Крисом Перри , Лесли Лутомски и Мэттом Бернеттом . Спасибо всем рецензентам SitePoint за то, что сделали контент SitePoint как можно лучше!