Битрикс – убираем из кода 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 року займаюся веб-розробкою. Зараз я – PHP Full Stack Developer.
Обговорити ваш проект, а також дізнатися більше про мене ви можете на цьому сайті:
dev.forwww.com

Email: dmitriyribka@gmail.com

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *