美文网首页
IE浏览器下兼容判断

IE浏览器下兼容判断

作者: Zhangzhuocheng | 来源:发表于2018-03-13 15:41 被阅读0次

首先讲一下css hack这东西

由于不同的浏览器,甚至同一浏览器的不同版本对CSS的解析认识不一样,导致生成的页面效果不一致,写出针对不同浏览器CSS code就称为CSS hack。

常用的CSS hack 有三种方式,CSS 内部hack、选择器hack、HTML 头部引用,其中第一种最常用。

CSS3中的常见写法:

/Mozilla内核浏览器:firefox3.5+/ -moz-transform: rotate | scale | skew | translate ;

/Webkit内核浏览器:Safari and Chrome/ -webkit-transform: rotate | scale | skew | translate ;

/Opera/ -o-transform: rotate | scale | skew | translate ;

/IE9/ -ms-transform: rotate | scale | skew | translate ;

/W3C标准/ transform: rotate | scale | skew | translate ;

1.IE8以及以下版本浏览器

.ie6_7_8{

 color:blue; /*所有浏览器*/

color:red\9; /*IE8以及以下版本浏览器*/

}

2.IE7以及以下版本浏览器

.ie6_7_8{

color:blue; /*所有浏览器*/

color:red\9; /*IE8以及以下版本浏览器*/

*color:green; /*IE7及其以下版本浏览器*/

}

3.IE6浏览器

.ie6_7_8{

color:blue; /所有浏览器/

color:red\9; /IE8以及以下版本浏览器/

color:green; /IE7及其以下版本浏览器*/

_color:purple; /IE6浏览器/

}

HTML头部应用之前先了解个概念

lte:小于或等于

lt :小于

gte:大于或等于

gt :大于

! :非

是否是IE下的判断:


也可以在其中加入

<link rel="stylesheet" type="text/css" href="ie.css" />

依照个人情况而定

是否是IE8及以下的判断:(以VUE的支持为范围为分界线,个人写法,可自行改变)

可在内容里添加对应的操作,比如提示用户升级浏览器并且给出升级的网站地址

百度得到的判断时候是IE9及以下的方法中,除了用HTML头部方法,还有一段JS

 (function (w) {
        if (!("WebSocket" in w && 2 === w.WebSocket.CLOSING)) {
            var d = document.createElement("div");
            d.className = "browsehappy";
            d.innerHTML = '<div style="width:100%;height:100px;font-size:20px;line-height:100px;text-align:center;background-color:#E90D24;color:#fff;margin-bottom:40px;">\u4f60\u7684\u6d4f\u89c8\u5668\u5b9e\u5728<strong>\u592a\u592a\u65e7\u4e86</strong>\uff0c\u592a\u592a\u65e7\u4e86 <a target="_blank" href="http://browsehappy.osfipin.com/" style="background-color:#31b0d5;border-color: #269abc;text-decoration: none;padding: 6px 12px;background-image: none;border: 1px solid transparent;border-radius: 4px;color:#FFEB3B;">\u7acb\u5373\u5347\u7ea7</a></div>';
            var f = function () {
                var s = document.getElementsByTagName("body")[0];
                if ("undefined" == typeof(s)) {
                    setTimeout(f, 10)
                } else {
                    s.insertBefore(d, s.firstChild)
                }
            };
            f()
        }
    }(window));

这里解释下为什么可以这么做:
Web Sockets 目前在各个浏览器到终端支持性并不好, 只有IE 10+, FF 34+, Chrome 31+, Safari 7.1+, Android Browser 4.4+ 才得到支持。
其实主要用到浏览器是否支持websocket来判断是否是IE9及以下,后面的判断状态是否是closing在此处似乎也没什么作用,可能我不太了解吧,不过问题不大。
/加点东西:
webSocket.readyState属性返回实例对象的当前状态,共有四种。
CONNECTING:值为0,表示正在连接。
OPEN:值为1,表示连接成功,可以通信了。
CLOSING:值为2,表示连接正在关闭。
CLOSED:值为3,表示连接已经关闭,或者打开连接失败。
/

对于不同公司业务,对于浏览器判断类型可以通过navigator.userAgent来实现,方法如下:

 function IEVersion() { //由于微软IE最高更新到IE11,edge为微软推出的新浏览器定义为12,其他浏览器统一判断为13,以vue为基础 将以小于9为提示升级浏览器,大于则不判断
        var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
        var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1; //判断是否IE<11浏览器
        var isEdge = userAgent.indexOf("Edge") > -1 && !isIE; //判断是否IE的Edge浏览器
        var isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf("rv:11.0") > -1;
        if (isIE) {
            var reIE = new RegExp("MSIE (\\d+\\.\\d+);");
            reIE.test(userAgent);
            var fIEVersion = parseFloat(RegExp["$1"]);
            if (fIEVersion === 7) {
                return 7;
            } else if (fIEVersion === 8) {
                return 8;
            } else if (fIEVersion === 9) {
                return 9;
            } else if (fIEVersion === 10) {
                return 10;
            } else {
                return 6;//IE版本<=7
            }
        } else if (isEdge) {
            return 12;//edge
        } else if (isIE11) {
            return 11; //IE11
        } else {
            return 13;//不是ie浏览器
        }
    }

相关文章

  • IE浏览器下兼容判断

    首先讲一下css hack这东西 由于不同的浏览器,甚至同一浏览器的不同版本对CSS的解析认识不一样,导致生成的页...

  • 判断浏览器IE

    经常遇到一些兼容问题,有的时候在所有ie上不兼容,有的只在部分ie上不兼容,根据具体问题我们要进行浏览器判断 1、...

  • 利用条件注释判断IE浏览器

    条件注释 众所周知ie浏览器兼容一直都是我们前端人员都痛,但是几乎所以浏览器都支持针对ie都条件注释来判断ie版本...

  • 前端开发兼容性总结

    前端开发IE下兼容性处理 主流浏览器,IE 6,7 ,chrome ,Firefox, Safari H5标签兼容...

  • JS事件兼容 - 列表整理

    事件兼容 备注: IE9及以上浏览器2种事件都支持,IE8及以下只支持IE浏览器列表的事件方法,所以要做浏览器兼容...

  • zoom:1的作用

    兼容IE6、IE7、IE8浏览器:触发IE浏览器的haslayout(如果触发了 haslayout,IE 的调试...

  • IE 下 base 标签失效

    # 1. 低版本 IE 浏览器 base 标签无效 > 目前存在问题,在高版本 IE 浏览器下,使用兼容模式,ba...

  • 浏览器前缀 js输出

    浏览器前缀 -ms- 兼容IE浏览器-moz- 兼容firefox-o- 兼容opera-webkit- 兼容ch...

  • 浏览器前缀js输出

    浏览器前缀-ms- 兼容IE浏览器-moz- 兼容firefox-o- 兼容opera-webkit- 兼容chr...

  • 浏览器前缀 js输出

    浏览器前缀 -ms- 兼容IE浏览器-moz- 兼容firefox-o- 兼容opera-webkit- 兼容ch...

网友评论

      本文标题:IE浏览器下兼容判断

      本文链接:https://www.haomeiwen.com/subject/jxpzfftx.html