BITRIX — убираем атрибуты type в теге script и лишние закрывающие слешы
При проверке на валидность страницы сайта на CMS Битрикс валидатор ругается на присутствие type в теге script (устаревший атрибут)
Warning: The type attribute is unnecessary for JavaScript resources.
а так же на лишний закрывающий тег в одиночных тегах (тоже устаревшая запись)
Trailing slash on void elements has no effect and interacts badly with unquoted attribute values.
решение — вешаем обработчик на OnEndBufferContent и вырезаем из сформированного буфера
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
//вырезаем 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); } } } |
PS
в регулярке почему то конструкция [link|metainput] не «взлетела», разбираться пока не стал — если кто подскажет почему, подкорректирую.
рубрики: Bitrix, Полезности | Комментарии (0)