четверг, июля 30, 2009

Explorer снова побеждён

(Update: сайт под переделкой по причине внезапного озарения, снизошедшего на хозяина). Спущен на воду небольшой персональный сайт местного находкинского гражданина, подавшегося не так давно в киви. Дизайн принадлежит гражданину, от меня требовалась только техническая реализация, оказавшаяся not-so-straightforward.

К рабочим моментам этого сайта относится предыдущий пост «Чья коробка толще» о попытке модифицировать ThickBox для показа произвольного содержимого. В посте я писал, что в итоге почти полностью отказался от использования кода ThickBox в проекте. Так оно и было... пока не обнаружилось, что от версии к версии Invalid Explorer отображает сайт в корне неправильно из-за своей мерзкой манеры игнорировать position:fixed (эти люди ещё говорят о соответствии своих продуктов каким-то там стандартам). Изучая вопрос, я убедился, как сложно и многогранно замазаны все майкрософтовские косяки в коде ThickBox: все решения бага позиционирования, встреченные мною в интернете (все!) были там использованы. Я попытался перенести их в казавшийся готовым сайт и, естественно, увяз. Все мои уловки совершенно не мешали Firefox и ни капли не помогали Invalid Explorer'у. В итоге я тупо выдрал из thikbox.js функцию создания окна просмотра, удалил из неё 3/4 кода (ненужного в этом случае) и прописал вместо этого подгрузку содержимого через AJAX. Удалил эту функцию из текста модифицированного мной thinkbox.js. ThinkBox подмены не заметил и стал обслуживать инородное окно просмотра как своё дитя. Уффф.

Кому интересны детали технической реализации, посмотрите исходник сделанного сайта. Модифицированная функция (на самом деле — две, для двух типов окон) включена в html. AJAX-запросы можно посмотреть монитором Firebug'a. В одном случае через AJAX идёт контент для окна, в другом — только размеры изображения для показа.

Ещё раз: уффф.

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

Поиск по этому блогу