Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

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 и вырезаем из сформированного буфера

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

Share the post

BITRIX — убираем атрибуты type в теге script и лишние закрывающие слешы

×

Subscribe to Gtalex – о работе в сети и не только

Get updates delivered right to your inbox!

Thank you for your subscription

×