兼容IE5,6,7,8 谷歌,火狐的关闭窗口方法

废话不多说,现在需要一个程序能够关闭IE5,6,7,8和谷歌火狐的方法其主要目的是为了兼容性考虑;

window.navigator.userAgent属性包含了浏览器类型、版本、操作系统类型、浏览器引擎类型等信息,通过这个属性来判断浏览器类型,下面是我写的一个函数,这个函数返回一个包含浏览器名称和版本的数组。

此函数可区分ie5.5~ie8、Chrome、Opera、Safair、Firefox这5种常见浏览器。为了版本兼容性考虑先写出这个函数;

	var browse=browser();
	function browser (){
		var ua=window.navigator.userAgent,
		ret="";
		if(/Firefox/g.test(ua)){
		ua=ua.split(" ");
		ret="Firefox|"+ua[ua.length-1].split("/")[1];
	}else if(/MSIE/g.test(ua)){
		ua=ua.split(";");
		ret="IE|"+ua[1].split(" ")[2];
	}else if(/Opera/g.test(ua)){
		ua=ua.split(" ");
		ret="Opera|"+ua[ua.length-1].split("/")[1];
	}else if(/Chrome/g.test(ua)){
		ua=ua.split(" ");
		ret="Chrome|"+ua[ua.length-2].split("/")[1];
	}else if(/^apple\s+/i.test(navigator.vendor)){
		ua=ua.split(" ");
		ret="Safair|"+ua[ua.length-2].split("/")[1];
	}else{
	ret="未知浏览器";
	}
	return ret.split("|");
}

页面上写一个简单的关闭元素

<a href="javascript:closewin();">关闭窗口</a>
下面到我们的重头戏了,关闭窗口的代码来了

function closewin(){
	var browserName=navigator.appName; //获取浏览器名称
		alert(browserName);
		if (browserName=="Netscape") {   //兼容火狐谷歌
			var opened=window.open('about:blank','_self');
			opened.opener=null;
			opened.close();
		}else if(browserName=="Microsoft Internet Explorer"){   //兼容IE
		if(browse[1]<=6.0){
			window.opener=null;
			window.close();
		}
		if(browse[1]==7.0){
		window.open('','_top');
		window.top.close();
		}
		if(browse[1]>7.0){
		window.opener=null;
		window.open('','_self');
		window.close();
		}
	}
}

这里要说一下 browserName=navigator.appName; //获取浏览器名称这里为什么谷歌的也是Netscape,这里主要是为了W3c的规范,也有人说是为了怀恋一下Netscape这个公司比较他们对浏览器做出了很大的贡献;

附录:

refox下无法关闭可能原因:
不是JS代码window.close()的问题,而是Firefox的配置问题,解决方法如下:
在Firefox地址栏里输入 about:config 
在配置列表中找到 dom.allow_scripts_to_close_windows 
点右键的选切换把上面的false修改为true即可。 
注:默认是false,是为了防止脚本乱关窗口 
另附代码: 
window.opener = null;//为了不出现提示框 
window.close();//关闭窗口

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值