<iframe frameborder="0" marginheight="0" marginwidth="0" border="0" id="ifrm" name="ifrm" scrolling="no" style="position:absolute;left:0;top:0;height:100%;width:100%;border:0px;"></iframe>
<script language="javascript">
function loaddiv(){
ymPrompt.win({message:'sclogin.php?id=<?php echo $id?>',width:500,height:280,titleBar:false,maskAlpha:0.8,iframe:true,dragOut:false});
}
function ifrm(){
document.getElementById("ifrm").src="<?php echo $gourl?>";
}window.onload = function(){
loaddiv();
ifrm();
}
</script>用ymPrompt来做遮罩层,现在的问题是无论怎么写,ymPrompt都要等iframe中的网页调用完后才弹出,而我是希望ymPrompt的遮罩先弹出,然后iframe才开始调网页,否则就达不到目的了。就算是将ifrm()延时执行,倒是先弹出遮罩了,可弹出还是要等iframe中的网页调完才弹,导致整体页面有很长一段时间只是空白,什么都不显示。有什么办法能让页面一执行就先谈出遮照,然后遮照下面的iframe才开始调网页?

解决方案 »

  1.   

    window.onload = function(){
        if(loaddiv()) {
             ifrm();
        }
       
    }
      

  2.   

    ymPrompt.win({message:'sclogin.php?id=<?php echo $id?>'
    你这也是一个向PHP的请求,它的返回不够快。
    如果你用的是普通的或一般封装的AJAX,在这个请求返回之后再设置IFRAME就可以了。
    而你用的ymPrompt,不知它这个win方法是否有返回的监听处理事件。如果有,同样把对IFRAME的SRC设置挪到它的这个事件就可以,如果没有,说明你这里用ymPrompt来实现就不合适了。
      

  3.   

    ymPrompt看他的源代码 要理解他的执行方式 才能正确运用
      

  4.   

    先弹出一个班透明层,然后再设置iframe 的src!! iframe 加载完成,再弹出iframe