<script language="javascript" type="text/javascript">
function closeWindow() 

var ua=navigator.userAgent 
var ie=navigator.appName=="Microsoft Internet Explorer"?true:false 
if(ie) 

   var IEversion=parseFloat(ua.substring(ua.indexOf("MSIE ")+5,ua.indexOf(";",ua.indexOf("MSIE ")))) 
   if(IEversion< 5.5) 
   { 
   var str = '<object id=noTipClose classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">' 
     str += '<param name="Command" value="Close"></object>'; 
     document.body.insertAdjacentHTML("beforeEnd", str); 
     document.all.noTipClose.Click(); 
   } 
    else 
   { 
     parent.window.opener =null;
     parent.window.open('','_self','');//for IE7
     parent.window.close(); 
   } 

else 

parent.window.close() 

}
</script>
<input type="button" value="Close the Window" onclick="closeWindow()" />

解决方案 »

  1.   

    window.onunload=function(){alert("are you sure?");}
      

  2.   

    在javascript中,
    关闭浏览器的时候会触发onpreunload事件和on决load事件,
    但onpreunload事件及onunload事件被激发的时候并不等于游览器窗口被关闭了.
    因此为刷新画面或者关闭tab的时候也会激发这个事件.
      

  3.   

    以下代码只有当点击右上角×时提示,可视为只在关闭事件时触发。
    不过在IE7下如果同时打开多个标签,但关闭的是整个IE而不是某个标签页时无效。
    Only for IE
    <HTML>
     <HEAD>
      <TITLE> New Document </TITLE>
      <META NAME="Generator" CONTENT="EditPlus">
      <META NAME="Author" CONTENT="">
      <META NAME="Keywords" CONTENT="">
      <META NAME="Description" CONTENT="">
      <script language=javascript>
      function doCheck(){
        if(event.clientY < 0) event.returnValue = "是否关闭?";
    else return true;
      } 
      </script>
     </HEAD> <BODY onbeforeunload="doCheck()">
      
     </BODY>
    </HTML>
      

  4.   

    上面第二条“不过在IE7下如果同时打开多个标签,但关闭的是整个IE而不是某个标签页时无效。”
    不全面,因为在多标签的情况下关闭浏览器时,IE本身有个提示,如果把这个提示去掉,则上面的代码仍然有效。
    IE先会将其他标签关闭,然后运行上述代码。
      

  5.   

    4楼实现的提示是非常好,但是,出提示时,WEB已经被关闭了(IE7+Maxthon2)
      

  6.   

    <input type="button" onclick="javascript:window.opener=null;window.open=('','_selft');window.close();">
    无提示
    自己改代码吧