用window.close()不行,奇怪……

解决方案 »

  1.   

    以前有朋友发过类似的帖子,我封装了,包含该文件,直接调用f_Close(),除2000+sp4不行之外,其他ie版本都ok<OBJECT id=Closeie5 type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11" VIEWASTEXT><param name="Command" value="Close"></object>
    <OBJECT id=WebBrowser classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0  width=0 VIEWASTEXT></OBJECT> 
    <SCRIPT LANGUAGE="JavaScript">
    function f_Close() 
    {
    var UAversion = parseFloat(navigator.appVersion);
    var UA = (navigator.appName);
    var IEua = (UA == "Microsoft Internet Explorer");
    var Netscapeua = (UA == "Netscape");
    var UAok = false;
    var isIE = false;
    var author = 'Jason Withrow';
    var newMsg = '';
    var isNS = false;
    var other = false;
    var curIEbuild = parseFloat("5.5");
    var curNSbuild = parseFloat("4.74");if (IEua && UAversion >= 4) {
       (UAok = true);
       (isIE = true);
      }
    else if (Netscapeua && UAversion >= 4.08) {    (UAok = true);
       (isNS = true);
      }
     
     if (IEua) {
      if (navigator.appVersion.indexOf("MSIE") != -1) {
       IEmajorStart = navigator.appVersion.indexOf("MSIE") + 4;
       IEmajorEnd = (IEmajorStart + 5);
       theMajor = navigator.appVersion.substring(IEmajorStart, IEmajorEnd);
       (UAversion = theMajor);  
      }
      if (isNaN(UAversion)) {
       (UAversion = (UAversion.substring(0, (UAversion.length - 1))));
    }
      
         }
         
    if (IEua & UAversion < curIEbuild) 
    {
    //alert(UAversion);//IE5.5以下的版本
    Closeie5.Click();
    }
    else
    {
    //alert(UAversion);//IE5.5、IE6.0 版本
    try
    {
    WebBrowser.ExecWB(45,1);//有安全限制
    }
    catch(e)
    {
    window.opener=null;window.close(); 
    }
    }if(Netscapeua)
    {
    window.close();//尚未尝试
    }}
    --> 
    </script>
      

  2.   

    如果是用户打开的不能用window.close()关闭,这涉及到程序的权限问题!如果是程序通过window.open打开的窗口,则可以通过window.close()关闭!