Портят наши страницы в основном следующие 4 вещи:
- JavaScript.
- Flash.
- Несуществующий по стандартам тег <noindex>, придуманный Яндексом.
- Глобальные CSS, размещаемые в заголовке документа.
Отказаться от них иногда может оказаться болезненно. Но есть обходные пути, которые приведут к валидности..
Разберемся по порядку..
1. JavaScript
Иногда само объявление о скрипте, может стать проблемой. Например:
<script>
Cod
</script>
Должно быть так:
<script type="text/javascript">
Cod
</script>
Теперь, для полной валидации необходимо использовать следующие комментарии:
<script type="text/javascript">
<!--//<![CDATA[
Cod
//]]>-->
</script>
А иногда и так:
<script type="text/javascript">/*<![CDATA[*/
Cod
/*]]>*/
</script>
2. Flash.
Сразу решение, ибо во флэш плохо разбираюсь..
<object type="application/x-shockwave-flash" data="flash.swf" width="468" height="60">
<param name="flashvars" value="link=http://site.com/" />
<param name="movie" value="flash.swf" />
<param name="quality" value="high" />
</object>
Вот еще вариант. Валидно и кроссбраузерно:
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="x" height="x">
<param name="movie" value="file.swf" />
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="file.swf" width="x" height="x">
<!--<![endif]-->
alt content
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
3. Несуществующий по стандартам тег <noindex>, придуманный Яндексом.
Большое спасибо отправляется к NickSpring
<de1 class="inv"><![CDATA[<noindex>]]></de1>
То, что запрещено к индексации
<de1 class="inv"><![CDATA[</noindex>]]></de1>
.inv {display:none}
4. Глобальные CSS, размещаемые в заголовке документа.
Анологично как и JavaScript, обязательно указывайте тип.
Вот:
<style type="text/css">
/* <![CDATA[ */
Style
/* ]]> */
</style>
Если приметь эти правила, то можно избежать многих ошибок!
Ответить | Цитировать
Поправки:
1. JavaScript в тэге script html сущностями замените тэг фонт (отображающий подсветку)
2. Flash , http://code.google.com/p/swfobject/ тут на мой взгляд более элегантные решения,как встроить флэшобьект.
Валидные тоже,везде работающие и решающие проблему,как с устаревшими flash плеерами,так и с альтернативным рисунком.
пример хтмл кода:
красота =)
Ответить | Цитировать
ну качните исходники по ссылке выше,что я привел.
оно того стоит =).
Ответить | Цитировать
Я то, что будет отображаться в комментарии после отправки, можно посмотреть, нажав на кнопку «Предпросмотр».
Ответить | Цитировать
2. Пробовал недавно использовать этот метод, так Яндекс успешно все проиндексировал и показывал все эти CDATA в снипах, поэтому пришлось все удалить нафиг. Короче говоря, не работает 🙂
Ответить | Цитировать
2. Жаль. NickSpring — заявлял, что пример работает.
Ответить | Цитировать
Ответить | Цитировать
Ответить | Цитировать