IE7没有正确定位对话窗口调整大小

问题描述:

就像我说的,IE7(和IE6,但我真的不在乎IE6很多)没有正确定位对话窗口调整大小的对话框。当窗口重新调整大小时,对话框会关闭。 IE8的FF浏览器Safari浏览器都能正常工作,位置和重新调整大小的对话框很好,但IE7重新调整了对话框的大小,但位置不正确。有人知道一些解决这个问题吗?IE7没有正确定位对话窗口调整大小

$("#mydialog").dialog({ 
    autoOpen: false, 
    bgiframe: true, 
    resizable: false, 
    modal: true, 
    title: "", 
    height: 400, 
    overlay: { 
     backgroundColor: '#000', 
     opacity: 0.5 
    } 
}); 
$(window).resize(function(){ 
    $('#mydialog').dialog("option", "height", $(window).height() - 40); 
    $('#mydialog').dialog('option', 'position', 'center'); 
}); 
$("#mydialog").dialog("open"); 
+0

要回答这个问题,一个需要知道的内部jQuery UI。您也可以在官方论坛上提问您的问题:http://forum.jquery.com/using-jquery-ui – 2010-03-24 08:57:16

好的这里是我发现的解决方法,它有点慢,但它的工作原理。

$(window).resize(function(){ 
    $('#mydialog').dialog("option", "height", $(window).height() - 40); 
    $('#mydialog').dialog('option', 'position', 'center'); 
    if ($.browser.msie && parseInt($.browser.version) <= 7) { 
     $('#mydialog').dialog('close'); 
     $('#mydialog').dialog('open'); 
    } 
}); 

我最近遇到了这一点,并发现了IE7更快更合适的修复,只是身体的CSS属性设置为相对的,占IE7处理窗口对象的方式。

由于您使用jQuery,下面应该工作:

$('body').css("position", "relative"); 

我还创建了以下说明的问题和解决方案:http://jsfiddle.net/ewsang/7PpcV/