ie兼容性问题(持续更新)

来源:互联网 发布:c语言void和int 编辑:程序博客网 时间:2024/06/06 02:07

ie 6 7 JSON 兼容

1、使用jqeury的JSON方法

$.parseJson(json)

2、eval方法

var jsons = req.responseText;  var s;  if (typeof(JSON) == 'undefined'){       s = eval("("+jsons+")");  }else{       s = JSON.parse(jsons);  } 

此方法有个小问题,就是会执行里面的js代码
3、引用json.js

<script type="text/JavaScript" src="js/json2.js"></script>

json.js

IE6、IE7兼容querySelectorAll和querySelector方法

if (!document.querySelectorAll) {    document.querySelectorAll = function (selectors) {        var style = document.createElement('style'), elements = [], element;        document.documentElement.firstChild.appendChild(style);        document._qsa = [];        style.styleSheet.cssText = selectors + '{x-qsa:expression(document._qsa && document._qsa.push(this))}';        window.scrollBy(0, 0);        style.parentNode.removeChild(style);        while (document._qsa.length) {            element = document._qsa.shift();            element.style.removeAttribute('x-qsa');            elements.push(element);        }        document._qsa = null;        return elements;    };}if (!document.querySelector) {    document.querySelector = function (selectors) {        var elements = document.querySelectorAll(selectors);        return (elements.length) ? elements[0] : null;    };}

当querySelector和querySelectorAll在ie6 7 下未定义的情况,直接重新定义querySelector和querySelectorAll。

兼容ie8 下拉框val()方法

在ie8以上$(“XXX”).val()方法获取的是选中的value,而当ie8及以下的时候获取的是一个数组,$(“XXX”).val()[0]才能获取正确的值。

var clsCodeValue = "";clsCodeValue = $("#clsCode").val();clsCodeValue  = typeof clsCodeValue == "object" ? clsCodeValue[0] : clsCodeValue;clsCodeValue = $.trim(clsCodeValue);  

如果clsCodeValue是数组的话,clsCodeValue的值为clsCodeValue[0]
如果clsCodeValue不是数组的话,clsCodeValue不变

获取浏览器类型的方法

var myBrowser = function() {    var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串    alert(userAgent);    var isOpera = userAgent.indexOf("Opera") > -1; //判断是否Opera浏览器    var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera; //判断是否IE浏览器    var isFF = userAgent.indexOf("Firefox") > -1; //判断是否Firefox浏览器    var isSafari = userAgent.indexOf("Safari") > -1; //判断是否Safari浏览器    if(isIE) {        var IE5 = IE55 = IE6 = IE7 = IE8 = false;        var reIE = new RegExp("MSIE (\\d+\\.\\d+);");        reIE.test(userAgent);        var fIEVersion = parseFloat(RegExp["$1"]);        IE55 = fIEVersion == 5.5;        IE6 = fIEVersion == 6.0;        IE7 = fIEVersion == 7.0;        IE8 = fIEVersion == 8.0;        if(IE55) {            return "IE55";        }        if(IE6) {            return "IE6";        }        if(IE7) {            return "IE7";        }        if(IE8) {            return "IE8";        }    } //isIE end    if(isFF) {        return "FF";    }    if(isOpera) {        return "Opera";    }}var myBrowser =  myBrowser(); if(myBrowser == "FF") {    alert("我是 Firefox");}if(myBrowser == "Opera") {    alert("我是 Opera");}if(myBrowser == "Safari") {    alert("我是 Safari");}if(myBrowser == "IE55") {    alert("我是 IE5.5");}if(myBrowser == "IE6") {    alert("我是 IE6");}if(myBrowser == "IE7") {    alert("我是 IE7");}if(myBrowser == "IE8") {    alert("我是 IE8");}
var userAgent = navigator.userAgent,        rMsie = /(msie\s|trident.*rv:)([\w.]+)/,        rFirefox = /(firefox)\/([\w.]+)/,        rOpera = /(opera).+version\/([\w.]+)/,        rChrome = /(chrome)\/([\w.]+)/,        rSafari = /version\/([\w.]+).*(safari)/;    var browser;    var version;    var ua = userAgent.toLowerCase();    function uaMatch(ua) {          var match = rMsie.exec(ua);          if(match != null) {            return {                browser: "IE",                version: match[2] || "0"            };          }          var match = rFirefox.exec(ua);          if(match != null) {            return {                browser: match[1] || "",                version: match[2] || "0"            };          }          var match = rOpera.exec(ua);          if(match != null) {            return {                browser: match[1] || "",                version: match[2] || "0"            };          }          var match = rChrome.exec(ua);          if(match != null) {            return {                browser: match[1] || "",                version: match[2] || "0"            };          }          var match = rSafari.exec(ua);          if(match != null) {            return {                browser: match[2] || "",                version: match[1] || "0"            };          }          if(match != null) {            return {                browser: "",                version: "0"            };          }    }    var browserMatch = uaMatch(userAgent.toLowerCase());    if(browserMatch.browser) {          browser = browserMatch.browser;          version = browserMatch.version;    }    alert(browser + version)

datase兼容性问题

var script = document.createElement('script');if (script.dataset){    script.dataset.aaBb = 'loading';} else {    script.setAttribute('data-aa-bb','loading');}//注意使用dataset的时候是驼峰,用setAttribute的时候用-
原创粉丝点击