Битрикс — убираем из кода type=text/javascript

Даже при чистой установке битрикса, сайт не проходит валидацию W3C. Как убрать из тегов устаревший атрибут type?

Как убрать атрибут type для тега script в Битриксе?

Для этого нам понадобится использовать файл событий.

Добавляем в /local/php_interface/ в файл init.php
(в некоторых проектах используется папка /bitrix/php_interface/)

// Валидация js
AddEventHandler("main", "OnEndBufferContent", "delete_type");
function delete_type(&$content) {
  $content = str_replace(" type=\"text/javascript\"", false, $content);
}

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

В Битриксе библиотека скриптов генерируется автоматически, а править ядро нежелательно (чтобы сохранить возможность обновляться). Настроек которые бы позволили убрать этот атрибут в административной панели на данный момент тоже нет.

Поэтому спокойно используем событие OnEndBufferContent, и убираем ненужный атрибут. Пройти валидацию вашей вёрстки можно на validator.w3.org

автор: Dmitriy

Занимаюсь веб-разработкой с 2011 года. Посмотреть некоторые из моих работ, а также узнать чуть больше обо мне, вы можете на forwww.ru.

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

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

E-mail: dmitriyribka@gmail.com
Skype: Dmitriy R

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *