Не секрет, что любой из компонентов норовит подключить свои js-скрипты на страницу. Но такая самодеятельность не нравится валидатору w3c из-за устаревшего вида подключения, который уже стал невалидным:
<script src="/assets/components/ajaxform/js/default.js" type=" text/javascript "></script>
Валидатор соответственно ругается:
Чтобы угодить валидатору, нам нужно избавиться от части
type="text/javascript"
Но как это сделать, если в шаблоне мы не находим большинства подключаемых js-файлов? Все они подключаются на лету различными плагинами.
Пишем свой плагин
Для решения этой проблемы нам самим нужно написать простейший плагин и обработать выводимое содержание страницы перед тем, как она отправится в браузер пользователю.
Пишем плагин на событие OnWebPagePrerender:
<?php
switch ($modx->event->name) {
case 'OnWebPagePrerender':
$output = &$modx->resource->_output; // перехватываем содержимое страницы
$output = str_replace(' type=" text/javascript"',"",$output); // (!) удаляем пробел перед text/javascript
break;
}
и вуаля! Задача решена, валидатор счастлив, мы вздыхаем с чувством выполненного долга.
Комментарии ()