Рубрики
Верстальщику

SWFObject + Internet Explorer + Mootools — как их подружить?

Для начала, хочу извиниться перед своими читателями за то, что так долго не писал в блог. Не буду рассказывать о большом количестве работы — у всех так. Но, чем больше работы, тем больше тем для этого блога. Сегодняшняя заметка на довольно насущную, но не новую тему. В работе, при использовании SWFObject,  очень часто приходилось решать конфликты этого скрипта с другими скриптами. Поскольку бОльшая часть моих проектов связана с Joomla! 1.5, в которой используется библиотека Mootools, то часто приходится решать конфликт SWFObject именно со скриптами Mootools.

Все дело в том, что Internet Explorer просто отказывается открывать страницу, выдавая при этом сообщение типа:

IE dialog

Об этом баге довольно хорошо известно разработчикам IE и они сами говорят почему так происходит http://support.microsoft.com/kb/927917/ но при этом решения не предлагают, кроме того, как использовать IE8 🙂

Эта проблема возникает потому, что дочерний контейнер  содержит скрипт, который пытается изменить родительский контейнер. Скрипт код пытается изменить родительский элемент с помощью либо innerHTML либо appendChild метода.

Решение этой проблемы заключается в том, чтобы сказать IE, что потомок не собирается менять своего родителя, во как…:) Сделать это можно простым методом, добавив к скрипту, который генерирует флеш атрибут defer=”defer”.

W3C определяет атрибут defer=”defer” следующим образом:

При использовании данного атрибута пользовательский агент получает информацию о том, что скрипт не будет генерировать содержимое документа (например, нет «document.write» в JavaScript) и, таким образом, агент пользователя может продолжить рендеринг.

На этом все. Коротко но, думаю, довольно ясно. Откланиваюсь, для решения очередных производственных задач, с мыслями о ном посте в скором времени. Удачи.

P>S>

Если в вашей жизни случилось значимое событие, его празднование помогут сделать еще более радужным Музыканты, которых можно найти и выбрать в Клубе Музыкантов Treda.

Рубрики
Joomla

Всплывающие подсказки в Joomla! 1.5 — ответ на вопрос читателя

tooltipЗдравствуйте! Наконец-то в суете послепраздничных дел, мне удалось взяться за написание ответа на вопрос читателя Buzun. Для начала я процитирую сам вопрос:

…есть ли возможность средствами HTML и CSS реализовать tooltips ( всплывающие подсказки ) в Joomla 1.5, но сделать это так что бы tooltips показывались над любой ссылкой (не только в контенте но и модулях и компонентах). В случае если тег титл не указан выводился бы текст ссылки ($text).
Eсли же нет то не могли бы вы разъяснить как подключить сей вариант бесплатного скрипта Mootools, здесь примеры, что я имею ввиду http://demos111.mootools.net/Tips но опять же что бы он действовал на все ссылки joomla.
Еединственный вариант решения, что мне попался на форумах joomla 1.5 вот http://forum.joomla.org/viewtopic.php?f=231&t=185473&p=1254549 (ссылка битая — Hiway), но если честно завис на вопросе внесения изменений в библиотеке \libraries\joomla\html\html.php.
Подытоживая:
1. есть ли возможность сделать tooltips для всех ссылок на странице?
2. возможно ли их реализовать более красивым и полупрозрачными?
P.S. ну и если нет то как прикрутить этот Mootools именно tooltips.

Итак, для начала немного конкретизируем и сократим «предмет исследования». Насколько я понял из вопроса — вас интересует именно фронтенд — то есть то что видит пользователь на вашей странице. Ок, считаем, что определились. Итак, сначала отвечу по поводу вот этой части вопроса «есть ли возможность средствами HTML и CSS реализовать tooltips ( всплывающие подсказки ) в Joomla 1.5» — да есть, и не только в Joomla 1.5, а везде, но не совсем полноценно и не для всех браузеров, если говорить только про HTML и CSS.

Рубрики
Верстальщику

Javascript и XHTML

Когда вы вставляете Javascript между тегами <script> и </script> на веб-страницу, которая имеет DOCTYPE HTML 4.01 Transitional или SCRIPT, то при валидации страницы у вас не должно возникнуть особых проблем. Поскольку в структуре HTML содержание Javascript, обрабатывается валидатором как CDATA (character data), содержание которого фактически игнорируется валидатором. Однако если вы следуете стандартам XHTML при верстке, то валидатор читает код между тегами скрипта как PCDATA (parsed character data), которые он не игнорирует, а начинает обрабатывать. И здесь начинаются чудеса. Вернее не чудеса, а всплывают ошибки валидации.

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

Однако бывают ситуациикога скриптик совсем небольшой и нет смысла выносить его во внешний файл и делать линк. В итоге, если вам нужно включить небольшой крипт непосредственно в страницу между тэгами <script> и </script>, то вам нужно использовать небольшой «хак» (конечно если вы заинтересованы в валидности вашего документа).