четверг, 3 сентября 2009 г.

Javascript и CSS в сообщениях Blogger

Довольно часто в конференциях проскакивают вопросы типа: «я написал функцию javascript. На отдельной странице работает, а в сообщении Blogger – нет». Это такие древние грабли, о которых я бы давно и забыл, поскольку «перешагиваю» уже на автомате. Но подобные вопросы всплывают снова и снова, поэтому проще один раз написать и избавить себя от головной боли в будущем.


Итак, как лечить. Дело в том, что у большинства пользователей Blogger активирована опция «Преобразовывать разрывы строк» (Настройки – Форматирование). Даже у меня, хотя если задуматься, она мне нафиг не нужна.


Все символы перевода строки в редактируемом сообщении \n преобразуются движком Blogger в теги <br />. И чтобы javascript не потерял работоспособность, код вида:

<script type="text/javascript">
function myBloggerFunction(){
/*...код функции...*/
}
</script>

в сообщении нужно утаптывать в одну строку:
<script type="text/javascript">function myBloggerFunction(){/*...код функции..*/}</script>


То же справедливо и для стилей CSS:

<style type="text/css">
.post-body blockquote {
font-style:italic;
color: #1A3457;
}
.post-body blockquote.myStyle {
border:1px dotted #1A3457;
}
</style>

Одной строкой:
<style type="text/css">.post-body blockquote {font-style:italic;color: #1A3457;}.post-body blockquote.myStyle {border:1px dotted #1A3457;}</style>


И еще один момент. Было замечено, что движок Блоггера ломает операции сравнения в javascript. Например, преобразует < в &lt; и > в &gt;. К сожалению (или к счастью), «на кошках» мне этот баг повторить не удалось. Возможно, что ошибка уже исправлена.


---
Увы, хворают не только скрипты; иногда болеют и домашние питомцы. Во втором случае – помощь окажут в ветеринарной клинике.


0 Комментариев :

Отправить комментарий

Жги!