При проверке на валидность страницы сайта на 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] не «взлетела», разбираться пока не стал — если кто подскажет почему, подкорректирую.