Алексей Барыкин - хитрый жук

11 марта 2010 г.

Internet Explorer 8 и плагин thickbox.js

Вы всё ещё используете Internet Explorer?

Вчера устанавливал IE8, чтобы пофиксить пару багов в клиенском сайте. Проблемы с чудо браузером начались ещё на этапе установки.

Родной дистрибутив от MS отказался устанавливаться, мотивируя отказ отсутствием каких то там библиотек... Танцы с бубном и использование сборки от Google решили проблему. :)

После установки наткнулся на некорректное взаимодействие этого чуда с популярным плагином для jQuery thickbox.js. Суть глюка - не всегда корректно определяется версия браузера и на некоторых разрешениях монитора наблюдаются проблемы с позиционированием. То есть всплывающее окно отображается слишком низко или слишком высоко (не по центру).

Решение проблемы.

Модифицируем функцию позиционирорвания tb_position()

Было:


function tb_position() {
 $("#TB_window").css({
  marginLeft: '-' + parseInt((TB_WIDTH / 2),10) + 'px', 
  width: TB_WIDTH + 'px'
 });
 if (!(jQuery.browser.msie && 
   jQuery.browser.version < 7)) {
  $("#TB_window").css({
   marginTop: '-' + parseInt((TB_HEIGHT / 2),10) + 'px'
  });
 }
}

Стало:


function tb_position() {
 $("#TB_window").css({
  marginLeft: '-' + parseInt((TB_WIDTH / 2),10) + 'px', 
  width: TB_WIDTH + 'px'
 });

  $.browser.msie6 = $.browser.msie && 
 /MSIE 6\.0/i.test(window.navigator.userAgent) && 
 !/MSIE 7\.0/i.test(window.navigator.userAgent) && 
 !/MSIE 8\.0/i.test(window.navigator.userAgent);
 
  if ( !(jQuery.browser.msie6)) {
  $("#TB_window").css({
   marginTop: '-' + parseInt((TB_HEIGHT / 2),10) + 'px'
  });
  }
}

Ярлыки:

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

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



Ссылки на это сообщение:

Создать ссылку

<< Главная страница