IE 阻止window.open 弹出新窗口 有什么好的方法  不要手动修改IE的设置

解决方案 »

  1.   


    function openMain() 

      /* url是main窗口的路径 */ 
      var url = "main.do"; 
      /* winparms是打开窗口的一些相关属性设置 */ 
      var winparms = "height="+(window.screen.availHeight - 47)+","; 
      winparms+= "width="+(window.screen.availWidth - 13)+","; 
      winparms+="left=0,";  
      winparms+="top=0,"; 
      winparms+= "status=yes,toolbar=no,menubar=no,location=no,resizable=yes,scrollbars=yes,"; 
      /* oModal是用来监测是否被IE阻止了弹出窗口的 */ 
      var oModal = window.open(url,"_blank", winparms); 
      //当oModal==undefined时,说明IE弹出窗口被阻止 
      //猜想:IE阻止的原理应该是发现有打开窗口,则立即关闭打开的窗口,所以oModal为undefined 
      if (oModal!=undefined) 
      { 
        //成功打开,则关闭登陆窗口,使opener为null,调用close时不提示是否关闭窗口的信息 
        window.opener = null; 
        window.close(); 
      }else 
      { 
        alert("您的IE阻止了弹出窗口。为了能够正常使用系统,请允许本站点的弹出窗口!谢谢!"); 
      } 
    }
    //本文来自CSDN博客,转载请标明出处: 
    //http://blog.csdn.net/xmalym/archive/2010/07/10/5724964.aspx
    //只能判断,因为干不过IE的设置,干不过360,上网助手等软件。
      

  2.   

    其实能不能通过其他的方法打开新窗口 ,我是先打开窗口 在Servlet 通过PrintWriter 输出的
    能不能 在 PrintWriter 输出前 ,通过  Servlet 打开新窗口