Я работаю с двумя модальными всплывающими окнами. Один представляет собой прозрачный серый экран для наложения экрана, а другой - это окно, которое должно располагаться поверх серого модального окна. Что ж, серая модальная остановка на полпути вниз по странице, а остальные отображаются внизу страницы.
Страница работает так, как задумано в 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);