Битрикс — убираем из кода 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.

- Создание сайтов на 1С-Битрикс любой сложности
- Вёрстка макетов Figma, Photoshop, Zeplin
- Поддержка проектов на Битриксе
- Разработка нового функционала для сайта
- Парсинг данных
- Выгрузка из файлов в формате XML, YML, XLS, XLSX, CSV, JSON
- Интеграция по API со сторонними сервисами
и многое другое

E-mail: dmitriyribka@gmail.com

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

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