Валидация html и type='text/javascript'

Валидация html и type='text/javascript'

11
19.05.2019

При проверке сайта в валидаторе w3c часто возникает ошибка The type attribute is unnecessary for JavaScript resources. Это значит, что атрибут type='text/javascript' для тега script не нужен. Он считается устаревшим.

Для скриптов, которые мы явно сами подключаем в коде убрать устаревший атрибут не является проблемой, но как же быть со скриптами, добавляемыми через api битрикса? Данный атрибут добавляется автоматически.

На помощь нам в таком случае приходит обработчик события "onEndBufferContent", позволяющий произвести модификацию данных непосредственно перед выводом контента пользователю.

В файле init.php (если вы не знаете, что это за файл и где он лежит - обратитесь за помощью к профессионалу, чтобы не "положить" сайт) необходимо разместить следующий код:

use Bitrix\Main\EventManager;
$handler = EventManager::getInstance()->addEventHandler(
"main",
"OnEndBufferContent",
array(
	"ClInit",
	"removeType"
)
);
	...
class ClInit
{
	...
	function removeType(&$content)
	{
		$content = static::replace_output($content);
	}

	static function replace_output($d)
	{
		return str_replace(' type=\'text/javascript\'', "", str_replace(' type="text/javascript"', "", $d));
	}

	...
}
	

В результате ненужный атрибут будет очищаться при завершении буферизации контента сайта, перед показом контента пользователю.



Благодарю за внимание! Делитесь вашими замечаниями в комментариях ниже.


P.S. Обращайтесь ко мне за приобретением лицензий и продлений на 1C-Битрикс "Управление сайтом", лицензий на облачную и коробочную версии Битрикс 24 а также за приобретением и внедрением готовых решений на базе 1С-Битрикс от партнеров. За более подробной информацией свяжитесь со мной любым удобным для вас способом


Комментарии

Еще никто не комментировал данную публикацию. Будьте первыми!

Добавить комментарий

captcha

Возврат к списку