リンクをクリックすると動的にページに追加するdivがあり、そのdivにiframeを書き込みます。
// 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で開きますが、問題はありませんが、(FirefoxとIE)の下部には、高さbody
と同じサイズの大量の空白があります。#loginDialog
すべてが順番に表示されるため、原因はわかりませんが、divがボディに追加されると、そこにレンダリングされるように見えます。ボディの高さを増やしてから、ダイアログを開きます。
編集
タイミングの問題であるように見えます-ブレークポイントを使用して各アクションをステップスルーすると、問題は解決されます-したがって、何かがすぐにトリガーされます...
私がこれを行うと、それは機能します-それで、callIframeに何かがありますか?:
callIframe();
alert('works when interrupted by alert');
openLoginDialog();
そうすれば、問題はありません。つまり、