"Текстовое содержимое элемента script не было в требуемом формате: ожидаемое пространство, табуляция, новая строка или косая черта, но найдены {вместо этого."

Мой HTML почти совместим с HTML5 в соответствии с W3C Validator, остается только одна ошибка: код Javascript для настройки кнопок Google Plus.

Добавляю ли я CDATA или нет, ошибка "Текстовое содержимое элемента script не было в нужном формате: ожидаемое пространство, вкладка, новая строка или слэш, но вместо этого найдено {." для этой строки отображается:

2 ответа

Сообщение об ошибке верное. Тег script с атрибутом src может содержать только документацию: пробелы и комментарии (/* ... */ или //...).

Если вы просто хотите избежать ошибки, попробуйте создать тег script с помощью js, как в примере асинхронной загрузки. Это не делает его действительным, но, по крайней мере, изначально поданный html будет без ошибок, и валидаторы не будут жаловаться.


... Я очень сомневаюсь, что вы выиграете валидационную войну здесь.

Если у вас есть клиент/босс, который одержим проверкой (а не твердым кодом), потому что у вас может быть надуманный, шелушащийся, действительный код), то вы можете сказать им, чтобы они полностью упали g +.

Но Google использует этот тег script для загрузки своего файла, этот файл находит последний загруженный тег script, а затем использует внутренний текст для конфигурации программы.

Это полностью допустимый синтаксис? Не совсем, нет.

Возможно, они могут подумать о том, чтобы попытаться работать в JS-комментариях, но на самом деле Google часто меняет этот материал, поскольку они захватывают мир и развивают веб-программирование (angular.js является craaazy).

Пока они не идеальны, я подозреваю, что их код более прочный, чем только "одобренный валидатором W3C" код.

licensed under cc by-sa 3.0 with attribution.