我有一个 div,我通过单击链接动态附加到页面,然后将 iframe 写入该 div。
// open login popin
function loginLayer(){
$(".ui-dialog-content").dialog("destroy");
callIframe();
openLoginDialog();
}
// write dialog div & iframe + src to DOM
function callIframe() {
var iframeURL = "" + loginConfig.iframeSource + "?displayType=" + loginConfig.displayType +"&isSignature=" + loginConfig.isSignature + ""
$('body').append('<div id="loginDialog"></div>');
$('#loginDialog').append('<IFRAME id="loginLayer" name="loginLayer" src="' + iframeURL + '" scrolling="no" width="100%" marginheight="0" marginwidth="0" frameborder="0"></div>');
}
// open login dialog
function openLoginDialog(){ //open }
运行后callIframe
,对话框打开。
发生的事情是对话框以 iframe 打开,没有问题 - 但是,在body
(firefox 和 IE)的底部是大量与#loginDialog
高度大小相同的空白区域。
我不确定原因,因为一切都按顺序显示 - 但似乎当 div 附加到主体时,它正在那里渲染 - 增加主体高度,然后在对话框中打开。
编辑
似乎这是一个时间问题 - 如果我使用断点逐步执行每个操作,问题就解决了 - 所以有些东西触发得太快了......
如果我这样做,它会起作用 - 所以 callIframe 中有什么东西?:
callIframe();
alert('works when interrupted by alert');
openLoginDialog();
那么,就没有问题了。所以,这意味着