Убираем атрибут text/javascript в 1С Битрикс и закрывающиеся теги meta
94
При проверке сайта в валидаторе w3c часто возникает ошибка The type attribute is unnecessary for JavaScript resources. Это значит, что атрибут type='text/javascript' для тега script не нужен. Он считается устаревшим. На сколько известно 1С-Битрикс добавляет свои скрипты в код страницы и убрать некоторые атрибут не предоставляется возможным. Для решения данной проблемы необходимо с помощью события onEndBufferContent отлавливать атрибут type в исходном коде и вырезать регулярным выражением. Таким же образом можно убрать лишние слэши в тегах meta и input Битрикс. Для этого разместите в init.php (/bitrix/php_interface/init.php или /local/php_interface/init.php) следующий код: //вырезаем type="text/javascript" AddEventHandler("main", "OnEndBufferContent", "removeType"); //вырезаем лишние закрывающие теги AddEventHandler("main", "OnEndBufferContent", "removeTrailingSlash"); function removeType(&$content) { $content = str_replace(' type="text/javascript"', "", $content); } function removeTrailingSlash(&$content) { if (preg_match_all('!<link (.*>?)/>!im', $content, $match)) { foreach ($match[0] as $str) { $content = str_replace($str, str_replace('/>', ">", $str), $content); } } if (preg_match_all('!<meta (.*>?)/>!im', $content, $match)) { foreach ($match[0] as $str) { $content = str_replace($str, str_replace('/>', ">", $str), $content); } } if (preg_match_all('!<input (.*>?)/>!im', $content, $match)) { foreach ($match[0] as $str) { $content = str_replace($str, str_replace('/>', ">", $str), $content); } } } Помощь проекту
Привет, меня зовут Вика! Я являюсь автором сайта Weblim.
Если Вам помогла данная статья, вы можете отблагодраить меня перечислив любую денежную сумму. Заранее спасибо! |
Последние записи
|