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

Love The Way You Lie 2022-09-23 08:13 269阅读 0赞

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

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

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

  1. var browse=browser();
  2. function browser (){
  3. var ua=window.navigator.userAgent,
  4. ret="";
  5. if(/Firefox/g.test(ua)){
  6. ua=ua.split(" ");
  7. ret="Firefox|"+ua[ua.length-1].split("/")[1];
  8. }else if(/MSIE/g.test(ua)){
  9. ua=ua.split(";");
  10. ret="IE|"+ua[1].split(" ")[2];
  11. }else if(/Opera/g.test(ua)){
  12. ua=ua.split(" ");
  13. ret="Opera|"+ua[ua.length-1].split("/")[1];
  14. }else if(/Chrome/g.test(ua)){
  15. ua=ua.split(" ");
  16. ret="Chrome|"+ua[ua.length-2].split("/")[1];
  17. }else if(/^apple\s+/i.test(navigator.vendor)){
  18. ua=ua.split(" ");
  19. ret="Safair|"+ua[ua.length-2].split("/")[1];
  20. }else{
  21. ret="未知浏览器";
  22. }
  23. return ret.split("|");
  24. }

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

  1. <a href="javascript:closewin();">关闭窗口</a>

下面到我们的重头戏了,关闭窗口的代码来了

  1. function closewin(){
  2. var browserName=navigator.appName; //获取浏览器名称
  3. alert(browserName);
  4. if (browserName=="Netscape") { //兼容火狐谷歌
  5. var opened=window.open('about:blank','_self');
  6. opened.opener=null;
  7. opened.close();
  8. }else if(browserName=="Microsoft Internet Explorer"){ //兼容IE
  9. if(browse[1]<=6.0){
  10. window.opener=null;
  11. window.close();
  12. }
  13. if(browse[1]==7.0){
  14. window.open('','_top');
  15. window.top.close();
  16. }
  17. if(browse[1]>7.0){
  18. window.opener=null;
  19. window.open('','_self');
  20. window.close();
  21. }
  22. }
  23. }

这里要说一下 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 条评论,269人围观)

还没有评论,来说两句吧...

相关阅读