我正在使用两个模态弹出窗口。一个是覆盖屏幕的透明灰色屏幕,另一个是应该位于灰色模态顶部的盒子。好吧,灰色模态停在页面的中间位置,另一个显示在页面底部。
该页面在IE7中按预期工作,但在IE8和9中显示为上面发布的内容。
我想知道是否存在导致问题的一般问题(7和8之间的关键差异)。
我已经尝试过的一个常见问题是doctype。我的是
<!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);