window.open 打开是空白页面

来源:互联网 发布:网络流行金典歌曲视频 编辑:程序博客网 时间:2024/04/27 14:05

众所周知,FireFox为了支持web标准,在1.1版以后就取消了对模式对话框的支持。即:window.showModalDialog()。但是我们有时在制作网页的时候想增强用户体验性,想使用这个功能怎么办?我们先来分析一下实现模式对话框的原理,我们在IE的模式对话框下无论点父窗口的什么地方,focus(焦点)总是回到了子窗口上面。那么在FireFox下我们将focus总是设置在子窗口上不就行了嘛。怎么设置呢?javascript 有一个定时执行函数的操作似乎可以不断地将子窗口设置为focus(我也没有去测试是否可以,就不能说一定可以了),但是我们没有必要这么麻烦,因为只需当用户点击父窗口的时候设置一下就行了,很幸运,FireFox支持window.onclick事件。那么我们一起来动手写一个既支持IE又支持 FireFox的“模式对话框”函数:
<script type="text/javascript" >
function modalWin(url)
{
       if (window.showModalDialog)
       {
          window.showModalDialog(url,'write',"dialogWidth:500px;dialogHeight:300px");
       }
       else
       {  
          var       w=window.screen.width;  
          var       h= window.screen.height;  
          var       winwidth=500;  
          var       winheight=300;  
          var       win= (h - winheight)/2;  
          var       winleft= (w- winwidth)/2;  
          window.myAction=this;
          var DialogWin =       window.open(url, 'write',"top="+win+",left="+winleft+',width=500px,height=300px,modal=yes');
          window.onclick=function (){DialogWin.focus()};
       }
}
</script>