Убираем атрибут text/javascript в 1С Битрикс и закрывающиеся теги meta
174
При проверке сайта в валидаторе 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);
}
}
} |
Последние записи
|