ie版本怎么降低版本(2021年ie最新版本)

最近有一个项目是以华为的响应式效果为参考的,为了把项目做好,必然要把华为的源代码重头到尾过一遍,在切图工作这已是家常便饭,当中有几点发现,华为是基于bootstrap布局,运用了bootstrap的幻

最近有一个项目是以华为的响应式效果为参考的,为了把项目做好,必然要把华为的源代码重头到尾过一遍,在切图工作这已是家常便饭,当中有几点发现,华为是基于bootstrap布局,运用了bootstrap的幻灯片组件,又进行了一些二次方法添加改造,而这次个过程中又碰触到了另外一个超屌的js判断ie版本的解决方案,决定将它分享:

jQuery在1.9版本之前,提供了一个浏览器对象检测的属性$.browser,使用率极高。但是在1.9版本发布之后,大家钟爱的这个属性被jQuery无情的抛弃了。大家开始着手寻找$.browser的替代方案。于是各种利用IE bug的检测方法被搜了出来:

// shortest from a Russianvar ie = !-[1,]// Option from Dean Edwards:var ie = /*@cc_on!@*/false// Use the commented line:var ie//@cc_on=1// Variation (shorter variable):var ie = ‘v’==’v’// Option to Gareth Hayes (former record-holder):var ie = !+”v1″

还有一些读取navigator.userAgent的方式,在苹果看来这些写法都不够友好,也不容易记忆,在搜索和挑选之后,终于找到了一个容易理解且友好方便的写法!

解决方案

IE知道自身毛病很多,于是提供的一套官方的HTML hack方式:

<!–[if IE]>

// 全部IE版本可见

<![endif]–>

<!–[if IE 6]>

// IE6可见

<![endif]–>

依次等等。

这样的写法在其它浏览器里,完全就是一坨注释而直接遭到无视,但在IE里却不会。IE会分析里面的提到的版本号,并根据版本号确定要不要解析里面的DOM元素和文本内容。等一下!DOM元素?那岂不是可以使用js来获取里面的DOM元素?反正谁看到了,谁就是IE!于是,国外大神就有了下面的写法:

var isIE = function(){ var b = document.createElement(‘b’)

b.innerHTML = ‘<!–[if IE]><i></i><![endif]–>’

return b.getElementsByTagName(‘i’).length === 1}

这也太巧妙了!首先生成了一个b元素,设置它的innerHTML为一坨只有IE才认识的注释,注释里只有一个空的标签,然后读取里面的出现的元素i的个数是不是等于1,是不是等于1,是不是等于1。。。。

在大苹果看来,这样的写法比其它任何一种都要好。至于为什么生成一个b元素并且里面写一个i元素而不是div或者strong,更多是考虑到前者字节量更小。

检测各个IE版本的方法也就顺理成章了:

var isIE6 = function(){ var b = document.createElement(‘b’)

b.innerHTML = ‘<!–[if IE 6]><i></i><![endif]–>’

return b.getElementsByTagName(‘i’).length === 1}// var isIE7// …

更进一步

在苹果看来,还可以进一步将版本号提取成参数,就能生成一个通用的检测IE版本的函数了:

var isIE = function(ver){ var b = document.createElement(‘b’)

b.innerHTML = ‘<!–[if IE ‘ + ver + ‘]><i></i><![endif]–>’

return b.getElementsByTagName(‘i’).length === 1}if(isIE(6)){ // IE 6}// …if(isIE(9)){ // IE 9}

这样想检测哪个版本都毫无压力。但是,如果只想检测是不是IE,而不关心浏览器版本,那只需要在调用函数的时候,不传递参数即可。

var ie = isIE()

最后依次贴下在各大浏览器里测试代码的截图。

alert(‘ie6:’ + isIE(6) + ‘n’ + ‘ie7:’ + isIE(7) + ‘n’ + ‘ie8:’ + isIE(8) + ‘n’ + ‘ie9:’ + isIE(9) + ‘n’ + ‘ie:’ + isIE())

ie版本怎么降低版本(2021年ie最新版本)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/67492.html

(0)
nan
上一篇 2021-12-17
下一篇 2021-12-17

相关推荐

  • 驾照多久过期(驾照过了有效期怎么办)

    驾驶证的档案三年自动注销,指的是从取得科目一合格的日期算起,三年内没有通过驾驶证的其它全部科目,无法取得驾驶证,档案会网被自动注销。注销后想要考取驾驶证,只能重新报名考试。有很多人因为时间的安排不合适,没有在规定的有效期内完成驾驶证所有科目的考试,造

    2021-10-14 随笔
    0
  • 牛根生的创业故事学到了什么(牛根生创业人生读后感)

    什么是赢家?所谓人生赢家,不是拥有了多少财富,而是能用自己喜欢的方式度过一生。人生有时候需要一记重拳,让你觉得有活着的感觉,痛代表着依然在乎,而在乎就是一种希望,因为人生最怕的从来都不是输,怕的是根本没有想赢的冲动。经历的事越多,接触的

    2021-12-26 随笔
    0
  • 如何做优化网站排名(优化好的网站介绍)

    一个网站有没有进行过搜索引擎优化,打开网站一看便知。通过看网站首页、网站的导航、图片的alt标签描写等内容,可以发现两者之间的区别。与没有进行优化的普通网站相比,进行了优化的网站的优越性主要表现在以下几方面。1.搜索引擎友好度高经过优化

    2021-11-30
    0
  • 韩国三大不能惹艺人(金高银为什么黑朴海镇)

    金高银,一个长相一般的单眼皮女生。出道即是女主角,首部影片即获得青龙奖和韩国电影大钟奖的最佳新人奖,成为了忠武路的宠儿。实打实的电影咖!金高银一般来说,像金高银这样拥有“高级脸”的电影咖,转移阵地成为…

    2021-12-01 用户投稿
    0
  • 一视同仁的故事解释(一视同仁是什么意思)

    唐太宗在经营丝绸之路的过程中,表现出对外来文化极大的宽容态度。他总结自己政治上成功经验之一就是:“自古皆贵中华、贱夷狄,朕独爱之如一,故其种落皆依朕为父母”。唐太宗对当时的“胡化”与“汉化”潮流,均能采取正确态度。他认为大唐帝国本是一个

    2021-12-06 用户投稿
    0
  • js正则匹配字符串中的数字(js正则匹配字符串中的数字讲解)

    正则表达式以及正则在JS表单校验中的应用1.正则表达式的引入表单验证两种常用的方法:<formaction=\"/aa\"onsubmit=\"r

    2021-10-31
    0

发表回复

登录后才能评论