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

ie兼容性问题(持续更新)相关推荐

  1. 网站兼容性(持续更新)

    站点兼容性,其实没什么好说的,不论是什么样的平台,输出到页面的终究是HTML.CSS.JS.VBS等等.因为每种浏览器的解释引擎不同,造成相同元素不同解析执行以及显示效果的不同,主要为CSS.JS.在 ...

  2. Java 最常见的 10000+ 面试题及答案整理:持续更新

    Java面试题以及答案整理[最新版]Java高级面试题大全(2021版),发现网上很多Java面试题都没有答案,所以花了很长时间搜集,本套Java面试题大全,汇总了大量经典的Java程序员面试题以及答 ...

  3. 前端知识点总结——JS高级(持续更新中)

    前端知识点总结--JS高级(持续更新中) 1.字符串 什么是: 连续存储多个字符的字符数组 相同: 1. 下标 2. .length 3. 遍历 4. 选取: slice(starti[, endi] ...

  4. JDK 7-JDK 21:Oracle Java SE 支持路线图/Oracle Java SE Support Roadmap 持续更新

    文章目录 前言 一.Oracle Java SE 产品版本 二.Java SE 8 的公共更新结束 三.参考文档 总结 前言 几十年来,Java 生态系统已经成功地经历了这个过程,经历了十次主要的平台 ...

  5. Android系统兼容性问题(持续更新)

    相信开发过一段Android的都被Android中的兼容性问题给折腾过,有时这确实很无奈,Android被不同的厂商改的七零八落的.本文主要总结下本人在实际的项目开发过程中所遇到的兼容性问题,以及最后 ...

  6. VersionEye开源持续更新工具

    VersionEye开源了帮助更新项目依赖项的同名持续集成工具.该工具提出了"持续更新(continuous updating)"的概念,它可以提供许多软件库的更新通知.许可检查和 ...

  7. 分享大神的一些博文、视频、资料--持续更新

    心理学家 Ericsson 的研究发现:决定伟大水平和一般水平的关键因素,既不是天赋,也不是经验,而是[刻意练习]的程度. 教育最重要的不是灌输,而是引发思考.这样的话就没有必要按时间顺序,介绍很多细 ...

  8. 前端面试题总结(js、html、小程序、React、ES6、Vue、算法、全栈热门视频资源)持续更新

    文档描述 本文是关注微信小程序的开发和面试问题, 由基础到困难循序渐进, 适合面试和开发小程序. 并有热点框架(vue react node.js 全栈)前端资源以及后端视频资源和源码 并基于前端进阶 ...

  9. 前端面试题精编2020(js、html、小程序、React、ES6、Vue、算法、全栈热门视频资源)持续更新

    文档描述 本文是关注微信小程序的开发和面试问题, 由基础到困难循序渐进, 适合面试和开发小程序. 并有热点框架(vue react node.js 全栈)前端资源以及后端视频资源和源码 并基于前端进阶 ...

  10. Redis-6.2.x版本官方发行说明(附谷歌翻译)【持续更新】

    一.前言   本文只是单纯地翻译Redis官方的6.2.x版本的发行说明,不会对发行说明内容做任何改动,读者如果觉得有异议,可自行去Redis官方相关网页查阅.翻译工具翻译出来的不一定百分百准确,英语 ...

最新文章

  1. 过去可忆,未来可期(随心录+杂记)
  2. Symfony2Book04:Doctrine03-对象关系映射(ORM)
  3. python操作json数据_Python操作JSON数据代码示例
  4. 【ArcGIS遇上Python】ArcGIS Python批处理入门到精通实用教程目录
  5. 重构随笔——重构的原则
  6. 解决unity 打包在Android 8.0上启动出现黑屏问题(Android权限弹窗问题)
  7. 谷歌ai人工智能叫什么_为Google产品提供动力的人工智能
  8. 《批判性思维工具》—— 阅读内化(5)
  9. 小记三款SD卡速度测试
  10. 20款最好的jQuery文件上传插件
  11. 【MATLAB】铰链四杆机构运动分析(GUI设计)
  12. Redis、ES、Nginx和RabbitMQ面试回忆
  13. 教育行业crm管理解决方案 - whale帷幄
  14. 编写程序计算圆的面积和周长
  15. 标签云打印/微信小程序蓝牙标签打印开放平台功能
  16. 华硕x580nv拆机_华硕x550v怎么拆机 华硕x550v拆机教程【图文步骤】
  17. 看Google收购Nest
  18. 和我一起搭建私有物联网云平台
  19. Xilinx FPGA中HR、HD、HP bank说明
  20. [plutus666原创]星图模拟软件-星图相机

热门文章

  1. linux 安卓 ppsspp,PPSSPP
  2. java 0xff byte 越界,PClint错误码大全
  3. SpringBoot配置文件数据库密码加密
  4. Facebook Android客户端热更新
  5. 浅析mpeg-ts封装结构
  6. Linux使用两行命令实现批量创建文件夹(文件目录)
  7. C#上位机与PLC通讯源码 C#与三菱PLC串口通讯MC协议FX3U及FX系列
  8. CCS烧录时,可设置只擦除用到的flash扇区
  9. 通过cmd调用网易云音乐
  10. allegro学习之总结pcb设计流程