Как отключить конкретный скрипт на сайте? - Itsovet61.ru

Как отключить конкретный скрипт на сайте?

Как отключить или удалить javascript на конкретной странице сайта - обзор способов

Как отключить конкретный скрипт на сайте?

Как отключить javascript на сайте

Javascript (или, кратко – JS) раньше использовался в качестве средства для придания интерактивности вебстраниц, а также для дополнительного форматирования страницы и ее элементов, что затруднительно или невозможно сделать при помощи возможностей html и CSS . В настоящее же время этот язык используется для создания полноценных вебприложений, которые могут запускаться на страницах сайтов.

Т.е., вроде бы, использование javascript призвано улучшить жизнь как разработчикам, так и пользователям. Однако, видимо, нет добра без худа. В данном случае оно, это «худо», проявляется путем злоупотребления некоторыми разработчиками разного рода технологиями javascript. В результате мы можем встретить страницы, которые следят, буквально, за каждым шагом пользователя. Страницы, которые периодически могут показывать пользователю «интересные» (с точки зрения разработчиков, конечно) сообщения и др.

Честно говоря, и мне, автору данной статьи, однажды окончательно поднадоела не в меру «интеллектуальная» дурацкая разработка страниц некоторых сайтов. Которые, вместо того, чтобы реально помочь читателю ознакомиться с содержимым их страниц и как-то заинтересовать, иной раз, напротив, прилагают ВСЕ(!) усилия для того, чтобы заставить читателя покинуть их, да как можно скорее. Там и «мигалки» разные, и «карусели» (занимающие почти полотна браузера), и вслывающие формы о «бесплатных» консультациях, и т.д., и т.п. Но, иногда и на таких сайтах, все же, бывает полезная информация. Да, изредка, но — бывает. Поэтому возникает разумное, законное желание — весь этот мелькающий мусор отключить.

Однако, если сделать это ДО загрузки страниц в браузер, некоторые сайты могут отображаться неправильно, а то и вообще не отображаться. Это связано с тем, что, нередко, содержимое страниц подгружается в браузер как раз при помощи javascript . Он же используется нередко для реализации адаптивной верстки (позволяющей качественно отображать контент страницы вне зависимости от того, каков конкретный тип устройства, через которое производится просмотр, а также вне зависимости от того, каково фактическое разрешение его экрана). Зачастую при помощи JS осуществляется дополнительное форматирование контента страницы (поля, цвет шрифта, картинки, расположение элементов друг относительно друга и т.д.).

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

Так вот, иной раз, страницы, выполненные с использованием «адаптивной верстки», попросту не хочется смотреть. Но, это лишь замечание вскользь, об адаптивной верстке поговорим как-нибудь в другой раз.

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

Правда, естественно, часть функциональности сайта при этом может быть недоступной. Например, нельзя будет воспользоваться поиском по сайту, нельзя будет открыть раскрывающиеся меню (если они реализованы не на чистом html+CSS , а при помощи javascript ), послать сообщение в форму обратной связи; могут не работать эффекты наведения мыши на соответствующие элементы и др.

Но, тем не менее. Иногда возникает необходимость, по-быстрому отключив JS (чтобы, повторимся, не мешались некоторые «современные технологии»), просмотреть страницу сайта.

Возникает вопрос: как это сделать?

Рассмотрим возможные способы.

1. Отключение javascript на всех сайтах без исключения

Конечно, в разных браузерах это делается по-разному.

Раньше в браузере Firefox присутствовала такая возможность – имелась соответствующая кнопка. Нажав на которую, можно было легко заблокировать функциональность javascript – применительно к конкретной странице. Однако, к сожалению, начиная с версии 23, такую возможность из этого браузера убрали, теперь это реализуется через настройки. Рассмотрим, как это реализуется на примере браузера Firefox 24 и последующих версий.

Заходим в настройки, прописав в адресной строке браузера:

кстати, без пробела(!)

Появится окно, что, мол, следует быть осторожным, а то функциональность браузера может быть нарушена. Соглашаясь с написанным и, в самом деле, обещая себе быть осторожными, нажав клавишу «Я обещаю, буду осторожен!», попадаем на страницу настроек Firefox . Там этих настроек… несколько сотен, наверное. Нам, в данном случае, естественно, нужна лишь одна:

Как ее отыскать там?

Это свойство можно ввести (вставить через буфер обмена, нажав на клавиатуре Ctrl + C ) в строчку поиска – и тогда браузер сам найдет все строчки в настройках, содержащих его.

Видим, что установлено значение этого свойства, равное true (т.е. javascript может работать).

Щелкаем два раза мышью по значению true , после чего оно сменится на false и станет выделенным. Кроме того, слева появится надпись, что оно «установлено пользователем»). Надпись тоже будет выделенной, т.е. жирным шрифтом.

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

Например, Rambler-почта будет работать, как ни в чем ни бывало, равно как и иные сайты.

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

Надо сказать, что этот способ – самый простой, но он неудобен, однако. Придется каждый раз обращаться на страницу about:config и то включать, то отключать javascript . К тому же, если он будет отключен, то страница будет формироваться без учета его технологий (т.е. верстка может быть сбита, а в некоторых случаях — и сама страница не будет загружена). Открытие же страницы сайта в текстовом варианте, зачастую, выглядит непривлекательно и неудобно.

А некоторые сайты (как уже упоминавшаяся Rambler-почта) попросту будут неработоспособны.

2. Временное отключение javascript при помощи плагинов

Это дает возможность отключить javascript – по выбору – только на тех страницах, которые к тому вынуждают (т.е. выборочно, по желанию пользователя).

Для этой цели служат плагины, такие, как JS Switch , Noscript . По моим оценкам, лучшим из них является, вроде бы, JS Switch . Да, он позволяет временно отключить javascript на странице сайта, а потом, когда он реально понадобится – вновь включить его. Что ж, удобно. Т.е. есть возможность сохранить именно тот формат вебстраницы, который сформировался, в том числе и при помощи javascript . Т.е. можно воспользоваться лишь его преимуществами, а потом спокойно отключить.

Правда, к сожалению, он отключает только те JS -скрипты, которые прописаны в самом тексте страницы. Тогда как подгружаемые скрипты, при помощи строчек вида

script src= » http://site.ru/script_file.js » type= «text/javascript» > script >

— почему-то не отключаются, все равно работают. Т.е. функциональность данного плагина оказывается какой-то половинчатой.

Кстати, этот плагин имеет даже некие настройки, которые позволяют анализировать работу JS . Правда, на мой взгляд, FireBug – все же удобнее и функуциональнее.

3. Отключение javascript при помощу букмарклета

Это – простой способ отключения JS . И, кстати, безопасный: не придется встраивать в браузер НЕ ВАМИ разработанных плагинов, которые могут работать по «странным» принципам и алгоритмам.

Что такое букмарклет?

Это (англ. bookmarklet; bookmark — «закладка» и applet — «апплет») — небольшая JavaScript-программа, оформленная как javascript: URL и сохраняемая как браузерная закладка.

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

Для этой цели в букмарклете, вместо URL , фигурирует функция и так называемый псевдопротокол javascript: . Впрочем, чем рассуждать об этом, давайте сразу посмотрим на рабочий пример букмарклета:

Читайте также  Как отключить бесплатную подписку на Окко?

Таким образом, после окончания работы этой команды в html-коде страницы (сформированном с учетом работы javascript ), тегов указанного вида не останется (даже если они и расположены в условных комментариях – это не имеет значения). Тем самым, странице почти НЕЧЕГО будет запускать, вне зависимости от планов тех, кто ее разработал. Соответственно, почти все ее интерактивность (и нужная, и ненужная) будет ликвидирована.

Слово «почти» употреблено в том смысле, что останутся, возможно, еще CSS-анимации, например. Останутся возможности раскрывающихся меню, выполненных на чистой html+CSS и т.п. Ведь наша функция удаляет только javascript , тогда как иные теги, не говоря уже о свойствах CSS , не трогает.

Далее – используем метод document.write() .

Этот метод донельзя лучше подходит в данном случае:

  1. Это самый, пожалуй, быстрый среди методов, которые могут дать аналогичный результат.
  2. Это метод, если вызван уже ПОСЛЕ загрузки страницы, ПОЛНОСТЬЮ стирает ее содержимое, взамен выводя то, что задано у него в аргументе (в данном случае – содержимое переменной html . Соответственно, структура DOM будет строиться заново, в соответствии с ее значением. А, как мы уже выяснили, теги-то в ней отсутствуют.

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

Дело в том, что в противоположном случае в некоторых браузерах (в том же Firefox ) вывод на страницу будет считаться незаконченным и индикатор загрузки страницы будет довольно продолжительно время вращаться, дезинформируя пользователя.

И, в общем-то, все. После выполнения данного букмарклета у нас получается, по сути, та же самая, но ДРУГАЯ страница с вырезанным JS . Даже если сервер (путем применения технологии websockets , к примеру) попытается передать ей какие-то данные – их попросту некому будет обрабатывать. Правда, сервер может осуществить запись на страницу, т.е. он способен вначале погрузить новый javascript , да еще с использованием оператора eval( ) . Как бы ни ругали его, в данном случае он может быть выходом из положения – для сервера: скрипт подгрузится на страницу и начнет выполняться (в свою очередь, заново подгрузив на нее только что удаленные скрипты). Поэтому для пользователя будет целесообразнее продолжить просмотр страницы сайта в автономном режиме. В браузере Firefox он включается так: Файл, Работать автономно .

Кстати, иногда такая возможность является полезной, если требуется дополнительно что-то вывести на страницу при помощи метода document.write() . В самом деле, пока открыт вывод, можно сколько угодно раз применять указанную команду – при этом новая информация будет добавляться к странице, содержимое ее меняться не будет. Тогда как после закрытия потока вывода – применение вызова document.write() (точнее, после окончательной загрузки страницы) может привести к перезаписи содержимого страницы. Отсутствие же вызова document.close() по сути, заставляет браузер НЕ ЗАКАНЧИВАТЬ загрузку страницы.

При этом связь страницы с сервером будет разорвана. И уже не будет возможности подгрузить на нее ненужные пользователю (посетителю вебстраницы) JS-скрипты.

H Защита сайта: скрываем наши JavaScript сценарии от посторонних глаз в черновиках Из песочницы

Для чего нам это?

Что для этого нужно?

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

а) Для тестирования создайте каталог на сервере.
Я захожу на виртуальный диск, у меня это диск R, там же зайдите в папку home

Создайте директорию script, а внутри создайте папку www, в итоге у вас получится: home/script/www/ — после этого обязательно обновите сервер (Restart Denwer)

б) Создаем файл index.php – допустим, это наша главная страница сайта, и тут нам нужно выводить скрытые скрипты. Так же создайте папку «js» в этом каталоге.

Для нашей задачи, потребуются AJAX-запросы, для этого вы можете использовать свои рациональные функции, но если ваш проект будет разрастаться до размеров, который потребует применение особых эффектов, событий, подключите библиотеку, а я подключу заранее jQuery, поэтому в корень папки «js» добавьте jquery.js.

Затем в этой же папке создайте новую папку, в ней и будут храниться скрипты, которые нам нужно будет скрывать. Я назову ее «security»:

в) Набираем предварительный код в index.php


Как вы видите, присутствует блок

PHP берет на себя роль считывания ваших скриптов, которые будут заблокированы на сервере и к ним нельзя будет обратиться.

Но для начала давайте создадим наши скрипты, которые хотим спрятать.

г) В папке «security» создайте script1.js и script2.js, c таким вот содержимым, соответственно:

Для примера достаточно и этого! Теперь, чтобы к ним нельзя было обратиться, необходимо задать это на сервере, это делается благодаря файлу .htaccess.

.htaccess – это файл конфигураций, настраиваемый разработчиком, пользователем данного сервера.

.htaccess имеет такое содержимое:

После чего, на запрос:

Вы увидите подобное:

Тем самым ваша папка security скрыта от посторонних глаз, она является недоступной.

Если вы попытаетесь подключить скрипты:

То в любом случае, ваши файлы не будут выполняться, так как они глобально скрыты сервером

д) Возвращаемся к программному php-блоку в index.php

Суть в том, что PHP имеет доступ ко всем файлам на сервере, независимо, скрыты они или нет, то есть, если вы пропишете:


то в данном случае мы с вами увидим содержимое нашего скрытого скрипта.

Однако с другого сервера содержимое нашего скрипта нельзя будет увидеть, и будет возвращено сообщение об ошибке 500. Это нам на руку, таким образом, другие сайты не смогут считывать наши скрытые файлы.


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

е) Вот как будет выглядеть конечный результат:

А теперь разбираемся, как это все работает. jQuery выполняет post-запрос (это помогает избежать дыр в работе index.php) на сервер «index.php?js=result», там идет проверка, если запрос с нашего сервера (функция strpos() и адрес нашего сервера «HTTP://script» – c учетом данного примера), то скрипт проверяет POST-переменную, то есть адрес нашего скрытого скрипта, и выдает текстовый результат. jQuery метод done() получает ответ в виде этого текстового содержимого, а уже этот текст можно преобразовать в рабочий javascript, это делает стандартная кроссбраузерная функция eval();

В итоге

Мы получаем свой результат, наши скрипты нельзя увидеть статически или динамически через консоль браузера, но легко увидеть их работу. Данные скрипты и их функции легко выполняются. Однако нужно хорошо подумать, чтобы применять данную технику, так как в данном случае поднимается вопрос производительности, быстродействия. Функция eval(code) среди разработчиков javascript считается злом, и рекомендуется использовать ее аналог new Function(‘return ’ + code), правда последнее не умеет выполнять определение функций внутри, то есть если в вашей переменной будет запись определения функции, code = “function test() ; test();”, то код не будет выполнен, а значит eval() подходит на все случаи жизни, правда имеет свои нюансы, о которых еще нужно дополнительно почитать.

Как запретить (разрешить) JavaScript в браузере Google Chrome

В данной статье показаны действия, с помощью которых можно запретить или разрешить выполнение сценариев JavaScript в браузере Google Chrome

JavaScript — это язык программирования, который используется для написания скриптов (программы сценарии на JavaScript). JavaScript используют большинство веб-сайтов, что делает сайты более интерактивными и функциональными.

Скрипты на JavaScript позволяют пользователям взаимодействовать с сайтами, например заполнять различные формы, просматривать всплывающие подсказки и выполнять другие различные действия.

По умолчанию в браузере Google Chrome разрешено использовать сценарии JavaScript.

Читайте также  Как отключить услугу автоответчик на Мегафоне?

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

  1. Как запретить (разрешить) JavaScript для всех сайтов
  2. Как запретить (разрешить) JavaScript на определенном сайте
  3. Как блокировать или разрешить JavaScript для определенных сайтов

Как запретить (разрешить) JavaScript для всех сайтов

Чтобы запретить (разрешить) JavaScript в браузере Chrome для всех сайтов, в правом верхнем углу окна браузера нажмите на значок Настройка и управление Google Chrome и в открывшемся меню выберите пункт Настройки

В настройках браузера разверните список настроек нажав на Дополнительные и выберите Конфиденциальность и безопасность, а затем в правой части окна в разделе «Конфиденциальность и безопасность» выберите Настройки сайта .

Затем на следующей странице выберите JavaScript.

В окне «JavaScript» включите или отключите переключатель Разрешено (рекомендуется).

Как запретить (разрешить) JavaScript на определенном сайте

Чтобы запретить (разрешить) JavaScript в браузере Chrome на определенном сайте, для этого откройте страницу нужного веб-сайта, и слева от веб-адреса нажмите на значок замка или Сведения о сайте и затем выберите Настройки сайтов .

Затем в настройках сайта, в выпадающем списке JavaScript выберите соответствующий пункт: Разрешать (по умолчанию), Разрешить, Блокировать.

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

Как блокировать или разрешить JavaScript для определенных сайтов

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

В настройках браузера разверните список настроек нажав на Дополнительные и выберите Конфиденциальность и безопасность, а затем в правой части окна в разделе «Конфиденциальность и безопасность» выберите Настройки сайта.

Затем на следующей странице выберите JavaScript.

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

Затем в окне «Добавить сайт» введите url-адрес сайта и нажмите кнопку Добавить.

Таким образом можно блокировать или разрешать выполнение JavaScript определенным сайтам.

Используя рассмотренные выше действия, можно запретить (блокировать) или разрешить выполнение сценариев JavaScript в браузере Google Chrome

Что такое JavaScript и как отключить его в браузерах Firefox, Chrome, Opera, Safari, Яндекс Браузере

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

JavaScript настолько стал популярен, что его использует большинство сайтов в Интернете.

Минусы технологии JavaScript

  1. В языке JavaScript встречаются критические уязвимости.
  2. Некоторые ваши параметры, такие как язык операционной системы, браузера, часовой пояс, IP адрес и другие параметры могут быть обнаружены через Javascript.

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

JavaScript можно отключить в браузерах: Mozilla Firefox, Google Chrome Chrome, Opera, Safari, Яндекс Браузер и Internet Explorer.

Можно проверить включена ли технология Javascript в вашем браузере на странице Проверки JavaScript и IP адреса.

Если у вас стоит значение Отключено, значит либо вы уже ранее отключили Javascript, или он не включен по умолчанию в браузере.

Если значение Включено, то читайте дальше как отключить.

Быстрая навигация по этой странице:

Google Chrome

Для отключения JavaScript в браузере Google Chrome зайдите в Настройки.

В строку поиска введите javascript и откройте Настройки Контента.

Отключите JavaScript в Google Chrome.

Mozilla Firefox

Для отключения JavaScript в браузере Mozilla Firefox введите в адресную строку следующий текст.

И нажмите кнопку Я принимаю риск.

В строку поиска введите javascript.enabled. Нажмите правой кнопкой мышки на строку и выберите Переключить.

JavaScript отключен в браузере Mozilla Firefox.

Safari

Для отключения JavaScript в браузере Safari зайдите в Настройки.

Отключите JavaScript в Safari на вкладке Безопасность.

Opera

Для отключения JavaScript в браузере Opera введите следующий текст в адресную строку и нажмите Enter.

Выберите раздел Сайты и отключите JavaScript в браузере Opera.

Яндекс Браузер

Для отключения JavaScript в Яндекс Браузере зайдите в Настройки.

Пролистайте вниз и нажмите на кнопку Дополнительные параметры и затем нажмите на кнопку Настройки содержимого.

Отключите JavaScript в Яндекс Браузере.

Internet Explorer

Для отключения JavaScript в браузере Internet Explorer зайдите в Свойства браузера.

На вкладке Безопасность нажмите кнопку Другой.

Найдите Сценарии и отключите Активные сценарии Javascript в Internet Explorer.

Microsoft Edge

Компания Microsoft убрала возможность отключения Javascript в последней версии браузера Microsoft Edge.

Если вам важно отключить JavaScript в Microsoft Edge, то рекомендуем воспользоваться другим браузером.

Станьте экспертом!

Получите больше информации о том, как быть анонимным в Интернете.
Получите знания в 1 клик

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

Обновлено: 28 июня 2020

Многие плагины и темы добавляют файлы JavaScript и CSS на сайт. Использование нескольких плагинов в WordPress может перегружать сайт множеством запросов на эти файлы. Приходится сталкиваться с проблемой загрузки скриптов в заголовке страниц или записей, которые в них не нуждаются.

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

С помощью нижеприведенного кода вы можете отключить (ненужный) стили, скрипт или JS-файлы плагинов на определенной странице или записи, чтобы уменьшить http запросы. А также увеличить скорость сайта WordPress.

Отключение JavaScript

Не все плагины используют соответствующие методы для загрузки скриптов и стилей. Некоторые разработчики просто добавляют код прямо в шапку. Обычно это происходит потому, что они не знакомы с двумя важными функциями WordPress: wp_enqueue_script () и wp_enqueue_style () , которые подключают внешние файлы CSS и JavaScript. Если используемый вами плагин или автор темы не использует эти функции, то попросите их сделать это. Это позволяет нам в дальнейшем работать с их кодом, используя методы, предоставляемые WordPress.

Прежде всего вам нужно найти какие скрипты или стили вы хотите отключить. Выполнив следующие шаги:

  1. Откройте index.php и найдите wp_enqueue_script или имя файла скрипта;
  2. Откройте файл functions.php вашей темы;
  3. Скопируйте и вставьте код ниже, отредактировав на свои данные.

В этом примере я покажу как отключить загружаемый Javascript-файл контактной формы, за исключением выбранной страницы. Например страницу контактов.

Отредактируйте значения Home и javascript-name-file в соответствии с вашими именами JS файлов.

1. Отключение JavaScript на страницах WordpPress

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

2. Отключение JavaScript в записях WordPress

Для публикаций используйте идентификатор записи WordPress. Например ‘1’ и javascript-name-file это имя JS скрипта, который необходимо отключить.

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

Отключение стилей в WordPress

В этом примере отключим таблицу стилей плагина WP-PageNavi. Это то, что я почти всегда делаю, потому что я добавляю правила стилей в style.css файл моей темы.

Первое, что вы должны сделать, это открыть wp-pagenavi.php в текстовом редакторе и найти wp_enqueue_style.

Мы ищем название функции. В нашем случае — это wp-pagenavi. Как только узнаем, закрываем файл и добавляем этот код в файл functions.php файл вашей темы, который отключит таблицу стилей для этого плагина.

Советы по улучшению этой работы

Вы отключили несколько скриптов и стилей, но вам нужно что-то с ними сделать. Вот список советов о том, как использовать методы, описанные в этом руководстве:

  • Добавьте стили, которые вы отключили, в конец style.css файла вашей темы и отредактируйте их оттуда, чтобы получить желаемый вид.
  • Объедините несколько скриптов в один файл и загрузите его самостоятельно. Я бы сделал это только для вещей, которые используют одну и ту же библиотеку JavaScript. Например, я часто комбинирую скрипты, которые построены на jQuery.
  • Используйте условные теги для детального контроля над загрузкой скрипта или стиля.
Читайте также  Как отключить ваше соединение не защищено?

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

WordPress — отключение скриптов

Мы уже рассмотрели как отключать CSS-файлы стилей, причем отдельно файлы, подключаемые темой оформления (подробнее тут) и отдельно отключение файлов стилей, подключаемых в плагинах (прочтите тут). А цель у нас одна — уменьшить число запросов к серверу и повысить скорость загрузки сайта.

Однако многие плагины подключают свои файлы js-скриптов. Зачастую нам не нужно, чтобы эти файлы загружались. По крайней мере это точно не нужно на каждой странице сайта — лишние запросы, меньше скорость работы сайта. Поговорим о том, как отключить файлы скриптов, загружаемые различными плагинами WordPress.

1. Определяем, какие скрипты загружаются плагинами.

Для этого используем сервис Pingdom Website Speed Test или PageSpeed.

На картинке ниже мы видим, что лишний скрипт, подключаемый плагином Contact Form 7, загружается на всех страницах сайта:

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

Мы решили отключить этот скрипт.

2. Поиск handle-инициатора скрипта, подключаемого плагином WordPress.

Теперь нам нужно найти handle скрипта — это то место, где скрипт подключается. Для этого мы в админ. панели WordPress заходим в «Плагины». находим нужный нам плагин Contact Form 7 и нажимаем кнопку «Изменить».

Открывается текстовый редактор php-файла плагина. Справа отображается список доступных php-файлов. Обычно подключение скрипта происходит в главном файле плагина.

Нам нужно выполнить поиск места подключения скрипта. Для этого нажимаем ctrl+F и в поисковой строке набираем:

wp_enqueue_script

Ищем, где встречается этот код. Если не удалось найти данный код в одном php-файле плагина, смотрим другие php-файлы.

Если так тоже ничего не нашли — воспользуйтесь программой Total Commander — выполните поиск со словами wp_enqueue_script.

Итак, в конце концов мы нашли handle нашего плагина:

contact-form-7

3. Отключение скрипта через функции темы WordPress.

Для этого в админ. панели сайта заходим во «Внешний вид» —> «Редактор» —> Выбираем справа файл функций темы functions.php

В конец файла дописываем такой код:

add_action (‘wp_print_scripts’,’remove_javascript’,100);
function remove_javascript () <
wp_deregister_script (‘contact-form-7’);
>

Примечание: строка wp_deregister_script (‘contact-form-7’); отключает скрипт, в ней требуется указать найденный ранее handle скрипта.

Иногда можно остановиться на этом — просто отключить скрипт. Однако многие плагины без скрипта не могут работать.

4. Подключаем скрипт только на нужных страницах.

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

Для плагина Contact Form 7 скрипт надо загружать только на странице контактов.

Для этого удаляем ранее добавленный код в файл functions.php и пишем другой код:

add_action ( ‘wp_print_scripts’, ‘my_deregister_javascript’, 100 );
function my_deregister_javascript () <
if ( !is_page (‘contact’) ) <
wp_deregister_script ( ‘contact-form-7’ );
>
>
Примечание: строка if ( !is_page (‘contact’) ) <задает ту страницу (по ее относительному url), на которой скрипт будет подключен. На остальных страница скрипт не будет загружаться. В данном случае скрипт будет загружаться только на странице http://www.ваш_сайт/contact/

Обратите внимание, что адрес страницы надо писать с учетом регистра.

5. Проверка сайта после отключения скрипта.

Теперь скрипт отключен. Нужно проверить:

  1. Отключился ли в действительности скрипт — для этого воспользуйтесь сервисом Pingdom и посмотрите лог загрузки — скрипта в нем не должно быть.
  2. Работает ли сайт корректно — проверяем сайт на работоспособность после отключения скрипта — все ли функции сохранились, открываем странички, смотрим.
  3. Проверяем наиболее тщательно, что стало с самим плагином, скрипт которого мы отключили.

Если все в порядке — значит мы сделали все правильно.

Обратите внимание, что мы отключили скрипт через функции темы, а не путем правки файлов самого плагина. Это позволит без проблем обновлять плагин и не бояться, что обновление затрет наши изменения и придется снова что-то отключать и править.

Файлы скриптов и их handle меняются крайне редко при обновлении плагина, поэтому вероятность, что данный способ перестанет работать с очередным обновлением плагина, — крайне низкая.

Поделитесь этой записью с друзьями, буду благодарен!

Это полезно знать:

  1. WordPress — объединение CSS-файлов стилей. Отключение загрузки лишних CSS-файлов плагиновУменьшение числа запросов к серверу — отличный способ оптимизации сайта. В темах оформления WordPress зачастую подключаются.
  2. WordPress: как объединить css файлы темы оформленияНекоторые темы оформления WordPress загружают более чем один файл стилей CSS. Когда CSS-файлов много, увеличивается.
  3. Пинг-сервисы WordPress. Ускоряем индексацию сайтаРассмотрим пинг-сервисы WordPress, которые получают информацию о новых записях на вашем сайте и ускоряют индексацию.
  4. WordPress: резервное копирование сайтаВажно понимать, что резервное копирование вашего сайта — это не просто рутинная процедура, это основа безопасности.
  5. Помощь начинающим сайтостроителямДля пересылки сообщений и файлов используйте форму: Я предлагаю вам помощь, уважаемые начинающие разработчики сайтов.

6 thoughts on “ WordPress — отключение скриптов ”

У меня вопрос: а если несколько плагинов, то как быть? На каждый писать»add_action ( ‘wp_print_scripts’, ‘my_deregister_javascript’, 100 ); и т.д.» или можно их объединить в этой функции?

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

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

Спасибо за столь быстрый ответ!

Гугл настоятельно рекомендует отложить загрузку скриптов. Аналогично Контакт-форм, хотел скрипты плагина Fancybox for WP оставить только на странице, где описываю его работу. Но не получилось. Подскажите,плз, как перенести загрузку скриптов в Футер? Это возможно?

Перенесенные в футер скрипты не всегда будут работать корректно. А библиотеку jQuery вообще не стоит переносить в футер в ряде случаев. Если все хе хотите попробовать, поищите плагины по js, csripts, footer, compress, defer и т.д.

1) Не понял зачем искать handl (у contact form насколько я понимаю — это wpcf7 или я ошибаюсь) и куда его вставлять?

2) Использую вместе с Contact Form плагин Contact Form 7 Datepicker — как его подключать только на конкретной странице?

Спасибо автору. Скрипт отключился на всех страницах и только остался на странице обратная связь. Загрузка страниц по времени уменьшилась с 5-8 секунд до 1,5 -4 секунды.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: