元の画面で処理を終了する前に、複数のモーダル ダイアログを順番に表示するために、複数の方法を試しました。モーダル ダイアログはすべて、フォームが送信された後に開始されます。最初のモーダルには 2 番目のモーダルが必要とする情報が含まれているため、それらは順番に開く必要があります。私が試みたすべての方法 (今のところ以下の単純化されたバージョンを使用) は IE (および Mozilla でも同様) で正常に動作しますが、Safari でテストしようとすると、思いどおりに動作しません。これは、私が本当に目指しているものを単純化/縮小したバージョンです。私は基本的に、アラートが鳴る前に test.html ページがロードされることを確認したいと考えています。IE では、これは以下の両方の方法で期待されるように機能します - ページを modalcontent div にロードし、アラートを表示します。ファイアフォックスでは、最初にアラートが表示され、次に画面が変更/リロードされます。javascript メソッド setInterval および setTimeout を使用してみましたが、firefox では、画面が更新される前にアラートが表示されます。私が行方不明の何かがあるかどうか、何か考えはありますか? 私はこれにすべて間違って近づいていますか?
<TABLE><TR>
<TD ALIGN="center" bgcolor="red" onClick="showNonIEModal('test.html');
alert('alert to show up AFTER load');">CLICK ME</TD>
</TR></TABLE>
<div id="modalcontent"></div>
Ajax メソッド:
<SCRIPT>function showNonIEModal(url)
{
var dsp;
var element = document.getElementById("modalcontent");
element.innerHTML = '<p><em>Loading ...</em></p>';
if (window.XMLHttpRequest){
dsp=new XMLHttpRequest();
}
else{
dsp=new ActiveXObject("Microsoft.XMLHTTP");
}
dsp.onreadystatechange=function(){
if (dsp.readyState==4 && dsp.status==200){
element.innerHTML=dsp.responseText;
}
}
dsp.open("GET",url,true);
dsp.send();
}</SCRIPT>
2番目の方法:
<SCRIPT>function showNonIEModal(url)
{
var element = document.getElementById("modalcontent");
element.innerHTML='<'+'iframe id="'+frameName+'" name="'+frameName+'" src="'+url+'"
FRAMEBORDER="0" height="500px" width= "600px"><\/iframe>';
}</SCRIPT>
何か案は?私はこの問題に数え切れないほどの時間を費やしてきました。これはSafariの問題のようです。答えを探していると、JQueryの使用に関する多くの回答が見つかりましたが、それは私にとって選択肢ではありません. 任意の考えをいただければ幸いです。
ありがとう!