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>
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的时候用-