Что вызвало бы модальное всплывающее окно javascript для работы в IE7, но не IE8? - PullRequest
1 голос
/ 26 мая 2011

Я работаю с двумя модальными всплывающими окнами. Один представляет собой прозрачный серый экран для наложения экрана, а другой - это окно, которое должно располагаться поверх серого модального окна. Что ж, серая модальная остановка на полпути вниз по странице, а остальные отображаются внизу страницы.

Страница работает так, как задумано в IE7, но отображается так, как указано выше в IE8 и 9.

Мне интересно, есть ли какие-либо общие проблемы, которые могут вызвать проблему (Ключевые различия между 7 и 8).

Одна общая проблема, которую я уже пробовал, - это тип документа. Мой

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

// загружает управление как модальное окно. если элемент передан, то использует его для размещения, иначе это

//creates a new element in the body.
toModal: function (element) {

    this.modalid = createModal(770, 500);
    this.show(this.modalid);
},


var controlID = '_modal_' + modalWindows.length;
var currYpos = document.viewport.getScrollOffsets()[1];

var windowWidth = document.viewport.getWidth();
var windowHeight = document.viewport.getHeight();

var tp = (windowHeight - height) / 2;
var lt = (windowWidth - width) / 2;

tp = tp + currYpos;  //+ 75;
currYpos = currYpos;  //+ 145;

var modal = new Element('div', { 'id': controlID, 'class': 'modalBox', 'style': 'top:' + tp + '; left:' + lt + '; z-index:10000' + modalWindows.length + '; width:' + width + '; padding: 0px 0px 0px 0px; height:' + height + ';overflow:auto;' });
var modalBack;
if ($('modal_back')) {
    modalBack = $('modal_back');
} else {
    modalBack = new Element('div', { 'id': 'modal_back', 'class': 'modalBack', 'style': 'top:' + 0 + '; left:' + 0 + '; width:' + windowWidth + '; height:' +  docHeight + ';'});
}
modalBack.setOpacity(0.5);

// For IE6 bug regarding SELECT's taking z-index presedence over all non-windowed controls (this is fixed in IE7+)
var version = 999;
if (navigator.appVersion.indexOf("MSIE") != -1) {
    version = parseFloat(navigator.appVersion.split("MSIE")[1]);
}

$(document.body).insert(modalBack);
$(document.body).insert(modal);
...