保存的时候设置一个变量作标志,关闭时,判断改变量的值就行了。<SCRIPT LANGUAGE="JavaScript">
<!--
//submited = false;
if (submited)
window.close()
else
if(confirm("save it?")) savedata();
else window.close();
//-->
</SCRIPT>

解决方案 »

  1.   

    用javascript,在关闭按钮的事件中写:
    if(confirm("是否关闭")){
      if(没有保存){
        if(confirm("是否保存"){
           保存;
        }
      }
      window.close();
    }
      

  2.   

    <form name="f1">
    <input type=hidden name="tb_editMode" value="NONE">
    <input type=text value="1234" name="param1" size="12" onchange="f1.tb_editMode.value='INPROCESS'"><br>
    <input type=text value="2345" name="param2" size="12" onchange="f1.tb_editMode.value='INPROCESS'"><br>
    <input type=button name="tb_close" value="关闭" onclick="winclose() ;">
    </form>
    <script language="javascript">
      function winclose(){
      if (f1.tb_editMode.value=="INPROCESS")
    if(confirm("是否保存")){       
    dosave() ;
    f1.tb_editMode.value="NONE" ;
    }
    else
    f1.tb_editMode.value="NONE"
    }function dosave(){
    alert("执行保存!") ;
    }
    </script>
    只有在修改后,关闭时才提示是否保存。
      

  3.   

    试试这个,较为全面了<form name="f1">
    <input type=hidden name="tb_editMode" value="NONE">
    <input type=text value="1234" name="param1" size="12" onchange="f1.tb_editMode.value='INPROCESS'"><br>
    <input type=text value="2345" name="param2" size="12" onchange="f1.tb_editMode.value='INPROCESS'"><br>
    <input type=button name="tb_close" value="保存" onclick="dosave() ;">
    <input type=button name="tb_close" value="关闭" onclick="winclose() ;">
    </form>
    <script language="javascript">
      function winclose(){
      if (f1.tb_editMode.value=="INPROCESS"){
    if(confirm("是否保存")){       
    dosave() ;
    window.close();
    }  else {
    window.close();
    }
       }else{
    if(confirm("你要确定要退出?")) window.close();
    else return;
       }

    }function dosave(){
    alert("执行保存!") ;
    f1.tb_editMode.value="NONE" ;
    }
    </script>
      

  4.   

    <BODY BGCOLOR="#FFFFFF" onunload="winclose();">
    <form name="f1">
    <input type=hidden name="tb_editMode" value="NONE">
    <input type=text value="1234" name="param1" size="12" onchange="f1.tb_editMode.value='INPROCESS'"><br>
    <input type=text value="2345" name="param2" size="12" onchange="f1.tb_editMode.value='INPROCESS'"><br>
    <input type=button name="tb_close" value="保存" onclick="dosave() ;">
    <input type=button name="tb_close" value="关闭" onclick="winclose() ;">
    </form>
    <script language="javascript">
      function winclose(){
      if (f1.tb_editMode.value=="INPROCESS"){
        if(confirm("是否保存")){       
            dosave() ;
            window.close();    
        }  else {
            window.close();
        }
       }else{
            if(confirm("你要确定要退出?")) window.close();
            else return;
       }
        
    }function dosave(){
        alert("执行保存!") ;
        f1.tb_editMode.value="NONE" ;
        }</script> 在<body>中加onunload="winclose();" 在直接关闭窗口时也会提示
    要不要保存。会更好吧。
      

  5.   

    我试了一下,发现都有缺陷:
    weidegong(weidegong)的例子中,如果直接点IE的关闭按钮,窗口会立即关闭,并且没有任何提示;
    Andrawu(Andrawu)的例子更好玩,我REFRESH一下都会出现是否要退出的提示,真够热情的:)而且如果我点IE的关闭按钮,虽然可以出现“是否要退出”的提示,但是窗口已经关闭了,我点“否”它可以回来吗?
      

  6.   

    写到这里,突然想起一个例子:TENCENT自己的浏览器!因为每次打开后如果要关闭它,总会出现讨厌的“是否要关闭”的提示,所以印象比较深,大家可以去参考一下它的源代码。
      

  7.   

    to: tarzan(呔) ,你说得很对,我当时没有注意这些,谢谢你提出的这些
    意见。
    对于REFRESH问题。把<body onunload="winclose();">
    加到我的第一封帖好象就可以了,不知对不对。
    对于IE的关闭按钮,在关闭之前它会提示你是否保存你修改过的内容。
    对于下面的修改肯定是还有问题的,tarzan(呔) 你还什么好的方法吗?
    如果有请加帖。
    <body onunload="winclose();">
    <form name="f1">
    <input type=hidden name="tb_editMode" value="NONE">
    <input type=text value="1234" name="param1" size="12" onchange="f1.tb_editMode.value='INPROCESS'"><br>
    <input type=text value="2345" name="param2" size="12" onchange="f1.tb_editMode.value='INPROCESS'"><br>
    <input type=button name="tb_close" value="保存" onclick="dosave() ;">
    <input type=button name="tb_close" value="关闭" onclick="winclose() ;">
    </form>
    </body>
    <script language="javascript">
      function winclose(){
      if (f1.tb_editMode.value=="INPROCESS")
        if(confirm("是否保存")){       
            dosave() ;
            f1.tb_editMode.value="NONE" ;
        }
        else
            f1.tb_editMode.value="NONE"
        }function dosave(){
        alert("执行保存!") ;
        }
    </script>
      

  8.   

    用“onunload”的话选择“否”页面还是会关掉的,可用“beforeunload”,大概是吧,不太记得了。