При проверке на валидность страницы сайта на CMS Битрикс валидатор ругается на присутствие type в теге script (устаревший атрибут)
Related Articles
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 и вырезаем из сформированного буфера
//вырезаем 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('!?)/>!im', $content, $match)) { foreach ($match[0] as $str) { $content = str_replace($str, str_replace('/>', ">", $str), $content); } } if (preg_match_all('!?)/>!im', $content, $match)) { foreach ($match[0] as $str) { $content = str_replace($str, str_replace('/>', ">", $str), $content); } } if (preg_match_all('!?)/>!im', $content, $match)) { foreach ($match[0] as $str) { $content = str_replace($str, str_replace('/>', ">", $str), $content); } } }
PS
в регулярке почему то конструкция [link|metainput] не «взлетела», разбираться пока не стал — если кто подскажет почему, подкорректирую.
This post first appeared on GTAlex – о работе в Ñети и не только, please read the originial post: here