我用.hta格式来保存以下代码就可以成功执行,但用.htm来保存时就不行,为什么呢? 
 如果非要用.hta格式来保存,怎么可以不打开新窗口来运行? 
 代码如下: 
 <HTML> 
 <HEAD> 
 <META http-equiv="Content-Type" content="text/html;charset=GB2312"> 
 <TITLE> 删除联系人 </TITLE> 
 </HEAD> 
 <BODY> 
 <CENTER> 
 <P> </P> 
 <P> <font color="#0000FF"> <B> 
 <FONT size="5"> 欢迎使用删除联系人系统 </FONT> 
 </B> </font> </P> 
 <HR> 
 <TABLE border=1 width="85%" height="100"> 
 <TR> 
 <TD align="center"> 姓名 </TD> 
 <TD align="center"> 性别 </TD> 
 <TD align="center"> Email地址 </TD> 
 <TD align="center"> 住址 </TD> 
 <TD align="center"> 公司 </TD> 
 <TD align="center"> 住址电话 </TD> 
 <TD align="center"> qq号 </TD> 
 </TR> 
 <SCRIPT language="JavaScript"> 
 var xmlDOM=new ActiveXObject("Microsoft.XMLDOM") 
 xmlDOM.async="false" 
 xmlDOM.load("communication.xml") 
 var curNode=xmlDOM.documentElement.childNodes 
 var ii=1 
 for(var z=0;z <curNode.length;z++) 
 { 
 cur=curNode.item(z).childNodes 
 document.write(" <TR> ") 
 for(var i=0;i <7;i++) 
 { 
 document.write(" <TD align='center'> "+cur.item(i).text+" </TD> ") 
 } 
 document.write(" <TD align='center'> "+"  "+ii+"  "+" </TD> ") 
 ii++; 
 document.write(" </TR> ") 
 } 
 function del() 
 { 
 for(var k=0;k <1;k++){ 
 if(t1.value==''){ 
 alert('请输入数字') 
 break 
 } 
 if(t1.value> =ii){ 
 alert('输入错误,最大数为'+(ii-1)) 
 break 
 } 
 var e=xmlDOM.documentElement.childNodes 
 var x=xmlDOM.documentElement 
 x.removeChild(e.item(t1.value-1)) 
 xmlDOM.save("communication.xml") 
 alert('删除成功') 
 alert('请点击 刷新 查看结果!') 
 } 
 } 
 </SCRIPT> 
 </TABLE> 
 <HR> 
 <INPUT TYPE=text name=t1> 
 <INPUT TYPE="button" value="彻底删除" onclick="del()"> 
   
 <input type=button value=刷新 onclick="document.execCommand('Refresh')"> </CENTER> 
 <table border="0" width="100%" id="table1" height="41"> 
 <tr> 
 <td width="290"> </td> 
 <td width="483"> <font size="2"> 说明:输入与姓名对应的数字(最后一列) ¦ 删除后按 "刷新" 查看 </font> </td> 
 <td> </td> 
 </tr> 
 </table> 
 <p align="center"> 
 <A HREF="index.html"> 返回 </A> 
 </CENTER> 
 </p> 
 </BODY> 
 </HTML>