Javascript 动态Div高度计算-JQuery/AJAX

Javascript 动态Div高度计算-JQuery/AJAX,javascript,jquery,html,lightbox,Javascript,Jquery,Html,Lightbox,我已经为jQuery编写了一个小的lightbox插件(是的,有几个现成的包——不幸的是,我公司的设计师不喜欢它们中的任何一个) 我有一个小问题——我使用.load()将动态flash内容加载到lightbox div中。我将div附加到DOM中,将可见性预设为hidden,并使用.outerHeight(true)和.outerWidth(true)获取维度。在internet explorer中,我得到的高度为61px(边距+1px) 假设:contentContainer已附加到主体dom

我已经为jQuery编写了一个小的lightbox插件(是的,有几个现成的包——不幸的是,我公司的设计师不喜欢它们中的任何一个)

我有一个小问题——我使用.load()将动态flash内容加载到lightbox div中。我将div附加到DOM中,将可见性预设为hidden,并使用.outerHeight(true)和.outerWidth(true)获取维度。在internet explorer中,我得到的高度为61px(边距+1px)

假设:contentContainer已附加到主体dom frag

var remote = $(document.createElement("div"));
remote.css( "margin", "30px" );     
var loadURL = $(this).attr( 'href' );

if( typeof( isImage ) == "undefined" || !isImage ){
    console.log( "Loading " + loadURL );
    contentContainer.append( remote );
    remote.load( loadURL, function(){                   
        contentContainer.css( "left", (currWindow.width/2) - (contentContainer.outerWidth(true)/2) )
            .css( "top", document.body.scrollTop + (currWindow.height/2) - (contentContainer.outerHeight(true)/2) );
        overlay.css( "visibility", "visible" );
        contentContainer.css( "visibility", "visible" );
    });
}
具有显式设置的高度和宽度的基本div是加载到remote中的内容

有什么建议吗?我认为当我试图计算高度和宽度时,这是愚蠢的。但是它使用了一个基本的图像


Josh

尝试在window.setTimeout中包围回调的内容0毫秒。这将等待当前调用堆栈在执行之前展开。根据我的经验,这解决了IE在浏览器事件触发后执行回调时,但在IE重新绘制窗口之前,回调计时的一些IE问题。

IE8。同样在我发布之后,值得一提的是,我正试图将div完全集中在屏幕上。本机在FF中工作,在IE中工作如果我先弹出警报,等待半秒钟,然后单击OK(可能来自ajax请求的内容已完全加载,因此IE可以计算高度)。如果不是在load finish回调中,我只是不确定应该在何处/何时询问高度。这个小技巧解决了我在IE中遇到的一些问题。