什么会导致javascript模式弹出窗口在IE7中工作但不是IE8?

时间:2011-05-26 18:54:04

标签: javascript internet-explorer-8 internet-explorer-7 modal-dialog

我正在使用两个模态弹出窗口。一个是覆盖屏幕的透明灰色屏幕,另一个是应该位于灰色模态顶部的盒子。好吧,灰色模态停在页面的中间位置,另一个显示在页面底部。

该页面在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);

0 个答案:

没有答案