+7 (902) 87-80-970
Краснотурьинск

 Лайтбокс от Kentico CMS и Internet Explorer

Спорим, ситуацию, которая изображена на картинке, Вы видите в Internet Explorer достаточно часто при работе с компонентом Lightbox в составе Kentico CMS.

Как видим, картинка загрузилась, но вот фон и рамка лайтбокса почему-то не соответствует картинке – слишком маленькие.

Вот как должно быть правильно.

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

Увеличение времени ожидания – хорошее решение, но ведь картинка может загрузиться быстро, а скрипт все будет ждать и ждать…

Давайте посмотрим на скрипт загрузчика лайтбокса. Вы можете найти его в файле «/CMSScripts/lightbox/lightboxLoader.js» вашего сайта.

Вот функция TryShow:

function TryShow()
{
    setwidhei();
    if ((windowWidth == 0 || windowHeight == 0))
    {
        setTimeout("TryShow();", loadDelay)
    }
    else
    {
        Element.hide('aspxoutput');
        mtmpobj.style.visibility = '';
        myLightbox.resizeImageContainer(windowWidth, windowHeight);
    }
}

windowWidth и windowHeight – это переменные в которых фиксируется размер загруженной картинки. Казалось бы, метод стойко будет ждать, пока не загрузится картинка.

Тем не менее, размер незагруженной картинки в Internet Explorer – не нулевой, а соответствует размеру картинке, отображаемой при невозможности загрузки таковой. Вот тут то и возникает описанная выше проблема.

Для решения этой проблемы мы заменим строчку

if ((windowWidth == 0 || windowHeight == 0))

на

if ((windowWidth < 50 || windowHeight < 50))

Размерчик можно поставить и поменьше. Заметьте, скрипт будет работать неправильно, если размер изображения меньше, чем 50 пикселей.

Ну и напоследок, анализ переменных windowWidth и windowHeight выполняется не только в методе TryShow, но и в некоторых других. Вот номера строк в исходном скрипте: 23, 54, 99.

Удачи!

Запостил: Gorchaev Mark, 06.04.2010 21:47:07 | Комментариев: 0
Filed under: Explorer, Internet, Kentico, Lightbox, script, solve


Комментарии
Нет комментариев к посту блога.
Оставить комментарий



 Security code
 
 Приветствие

Приветствую! Меня зовут Александр. В этом блоге я буду рассказывать о наших продуктах и планах, о разработке для Kentico CMS, для .NET и так далее.

 Recent posts
 Syndication
RSS
 Post archive
Kentico Gold Partner
Продукты  |  Услуги  |  Портфолио  |  О компании
Here you can find information as to the passport for our WM-identifier 932762902436 www.megastock.com Powered by Kentico CMS