关闭窗口

无提示关闭窗口怎么做
解决思路
因为目前关闭窗口的方法都不能完全兼容IE5以上的版本,所以需要根据用户浏览器版本而执行不同的代码。如果版本为6.0以下,用HHC控件关闭,否则用声明当前窗口为子窗口的方法关闭。
具体步骤
 1. 对于IE6.0+SP1以下版本的浏览器,下面的代码能正常运行:

<object classid=clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11 id="CLS" type=application/x-oleobject>
<param name="Command" value="Close">
</object>
<button onClick="CLS.Click()">关闭窗口</button>

在IE6.0+SP1上运行,单击【关闭窗口】按钮后提示,如图1.5.15所示:

图1.5.15在打了SP1的IE6上用HHC控件关闭窗口

 2. 对于IE5.5以上版本的浏览器,下面的代码能正常运行:

<object classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WebBrowser width=0></object> 
<button onClick="WebBrowser.ExecWB(45,1)">关闭窗口</button>

3.如果当前窗口是用window.open()方法弹打开的子窗口,直接用下面的代码就可以关闭:
<button onClick="self.close()">关闭窗口</button>

 在非子窗口中运行后单击【关闭窗口】按钮,会有一个确认对话框(图1.5.16)。

图1.5.16 在没有父窗口的窗口中用close方法关闭窗口

4. 对于IE6.0以上版本的浏览器,下面的代码能正常运行:

 <button onClick="self.opener=null;self.close()">关闭窗口</button>

这个方法类似于3,但需要用self.opener=null(null也可以换成任意值)声明当前窗口为子窗口(骗IE的而已)

5.上面的1、2、4三种方法中任意一个单独应用,都无法兼容所有版本的IE浏览器,但方法1和方法2或4的并集都是全集,所以可以通过判断IE版本来执行相应代码:

<script>
function closeit(){
//方法1中用到的控件代码
var ObjStr=’<object id="Cls" classid=clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11 type=application/x-oleobject><param name="Command" value="CloseX"></object>’ 
if(parseInt(window.navigator.appVersion.split(";")[1].substr(5))>=6){               //如果IE版本在6.0以上,用方法4关闭窗口
    self.opener=’’
    self.close()
 }
 else{           //如果IE版本低于6.0,用方法1关闭窗口
//如果控件对象不存在,插入控件代码
if(!document.getElementById("Cls"))
document.body.insertAdjacentHTML("BeforeEnd",ObjStr) 
      Cls.Click()
 }
}
</script>
<button onClick="closeit()">关闭窗口</button>

技巧:HHC控件代码中的CloseX 可以改为 Close后加任意字母。

特别说明


本例通过判断客户端的IE浏览器版本而用不同的代码关闭窗口,以达到兼容的目的。
1.       window.navigator.appVersion获取浏览器运行的平台和版本。
2.       String.substr(开始位置 [,要截取的字符长度]) 返回一个从指定位置开始的指定长度的子字符串。
3.       document.getElementById("ID属性值") 获取对 ID 标签属性为指定值的第一个对象的引用。
4.       insertAdjacentHTML("HTML 文本",位置) 在指定位置的元素中插入给定的 HTML 文本。
相关问题
如何让引导页在打开无边窗口后无提示关闭
一般引导页打开无边窗口的方法都是通过在onload 中触发打开无边窗口的函数,所以只需要把上面的无提示关闭窗口的方法附加上 onload 事件后就可以了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值