最好的ie版本方式

预备知识:NodeList的实时性

通过 document.getElementsByTagName,document.forms ,document.images  等方法获取到nodelist以后  里面的内容会适时的更新 这一点区别与array

我们利用它和条件注释来检测oldIE的版本

我认为 这是最靠谱的方法

     

--------------------------------华丽的分割线 请听我娓娓道来------------------------------------

 

搞前端的一大痛苦就是要搞定各个浏览器. 在这个问题上最牛逼最烦最装逼最可恶的要是ie大哥了.

不是ie的manager吃白饭,ie受制于操作系统的限制,不能随便升级 . ie永远做不了”版本帝”

但是ie9以后速度就很快了. win8.1上ie启动速度不亚于chrome

"浏览器能力检测优于浏览器检测”

if(!!document.addEventListener)//能力检测
{
    alert(‘我可以通过document.addEventListener添加事件‘)
}

业界公认的观点.

但是有时候还是避免不了浏览器的检测 今天咱来说说ie大哥的检测

 

普遍的检测方法有以下几种

  1. userAgent
  2. 你的代码里 是不是有这样一句

     var isIE6 = window.navigator.userAgent.indexOf(‘IE 6‘) > 0;                        // O(∩_∩)O哈哈~

    我感觉这种方法最萌了

    通常情况下 他不会有什么问题  但是看上去非常的屌丝(个人意见)

    而且userAgent 这个属性我们可以更改的    百度一下 “更改useragent”

2. 怪癖检测

var isIE=!!window.ActiveXObject;

var isIE6=isIE&&!window.XMLHttpRequest;

var isIE8=isIE&&!!document.documentMode;

var isIE7=isIE&&!isIE6&&!isIE8;

通常我们仅支持到ie6   这样的代码到ie5下妥妥的挂掉

3.条件注释

varisIE6=false;

document.write("<!--[iflte IE6]><script>isIE6=true;</scr"+"ipt><![endif]-->");

if(isIE6){

alert(‘你当前的浏览器是IE6或者以下‘);

}

这样的方法很稳定 但是不优雅 而且写入了dom元素

     

     

    小弟提供一种方法大家参考一下

    咔咔上代码:

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>IEVersion</title>
        <script>
    
            var IEVersion = (function () {
    
                //返回结果
                var result = {
                    isIE: false, //是否ie
                    version: -1   //版本号
                }
    
                //#region ie4_9
                var _version = 3;//ie版本号 临时的
                var ie4_9 = false;
    
                var odiv = document.createElement(‘div‘);
                /*
                目标元素
                这个元素不需要append
                在这个元素内插入ie条件注释 注释内包含一个标签 inner_element
                */
                var inner_element = odiv.getElementsByTagName(‘i‘);
    
                while (odiv.innerHTML = ‘<!--[if gt IE ‘ + (++_version) + ‘]><i></i><![endif]-->‘, inner_element[0]) {
                    ie4_9 = true;
                }
                //#endregion
    
                if (ie4_9 && (_version > 3 && _version <= 9)) {
                    result = { isIE: true, version: _version };
                } else if (document.all) {
                    result = { isIE: true, version: 10 };
                } else if ("ActiveXObject" in window) {
                    result = { isIE: true, version: 11 };
                }
    
                return result;
            })();
    
        </script>
    
        <script>
    
            if (IEVersion.isIE) {
                alert(IEVersion.version);
            }
    
        </script>
    
    </head>
    <body>
        <!--[if IE 7]>所谓的双核浏览器的兼容模式会显示这个 因为他们跑的是ie7模式<![endif]-->
    </body>
    </html>

     

ps :

ie4-9 用条件注释来检测  新建的dom元素不需要插入到页面中

ie10不支持条件注释 但是ie10 支持document.all

ie11 就用("ActiveXObject" in window)来检测一下吧

有么问题欢迎大家讨论 O(∩_∩)O哈哈~

时间: 2024-10-08 10:34:28

最好的ie版本方式的相关文章

powerdesigner低版本打开高版本方式为只读导致无法保存PD只读read-only-mode

由于版本号不一致 打开PD文件后提示: 点击[确定]后打开,点击[取消]后打不开 但打开后修改完毕保存提示: 解决办法: pdm文件实际上是个xml文件,直接用文本编辑器打开该文件修改版本号即可 把根节点最后的版本号改成你的PD版本号再保存就可以打开编辑了. PD版本号查看方法:打开PD>>帮助>>关于powerdesigner

基于django实现图文验证码两种方式

引言:无论做什么项目用户模块永远绕不开的坎,而用户模块貌似一定是有验证码的,这里介绍python下两种实现验证码的方式 环境介绍:django+python3.6以上版本 方式1:使用django自带的django-simple-captcha 第三方包的下载 pip install django-simple-captcha 将captcha安装到 install_apps里面 INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib

在Eclipse平台上安装STS插件

在Eclipse平台上安装STS插件 场景说明 当我们基于Spring.Spring MVC开源技术框架做一些研发时,采用STS IDE或STS插件无疑是最好的选择.例如编辑Spring配置文件时的代码提示,自动补全功能. Eclipse选择 Eclipse提供了各种版本,其中我比较喜欢如下两个版本. EclipseLunaRS2:Java SE 8的官方兼容版本. EclipseNeon3:更新比较快,适合技术狂热追寻者. 本文选择eclipse-jee-neon-3-win32-x86_64

前端学PHP之Smarty模板引擎

前面的话 对PHP来说,有很多模板引擎可供选择,但Smarty是一个使用PHP编写出来的,是业界最著名.功能最强大的一种PHP模板引擎.Smarty像PHP一样拥有丰富的函数库,从统计字数到自动缩进.文字环绕以及正则表达式都可以直接使用,如果觉得不够,SMARTY还有很强的扩展能力,可以通过插件的形式进行扩充.另外,Smarty也是一种自由软件,用户可以自由使用.修改,以及重新分发该软件.本文将详细介绍Smarty模板引擎 概述 Smarty是一个php模板引擎.更准确的说,它分离了逻辑程序和外

常见&lt;meta&gt;的基本用法详解

<meta charset="utf-8"> 定义与name 属性相关的信息,使用 utf-8编码方式编译字符 <meta http-equiv="X-UA-Compatible" content="IE=Edge"> X-UA-Compatible 是IE8一个专有的<meta>属性,它告诉IE8采用何种IE版本去渲染网页,在html的<head>标签中使用.可以在微软官方文档获取更多介绍. 在I

JavaEE Hibernate初级概念

1.  Hibernate 是连接Java应用程序和关系数据库的中间件: 对JDBC API进行了封装.负责Java对象的持久化: 在三层软件架构中它位于持久层(数据访问层),封装了所有数据访问细节,使业务逻辑层可以专注于实现业务逻辑: 它是一种ORM映射工具,能够建立面向对象的域模型和关系数据模型之间的映射. 是轻量级JavaEE应用的持久层解决方案. 2.  Hibernate框架的作用: Hibernate主要用来实现Java对象和数据的表之间的映射,除此之外还提供数据查询和获取数据的方法

MSF过程模型的特点

MSF过程模型的特点:(小组队员:王安琪   ) MSF过程模型在下面的许多方面不同于传统的开发模型: 强调“系统前景/范围”,而不是需求. 面向客户的里程碑,而不是面向开发的里程碑.每个里程碑是项目组重新校准客户期望值的同步点. 不同版本方式的发布,而不是第一版就包含全部的功能特色,快速变化的技术会不断增强系统的功能,强化PC使用者的能力.不同版本的发布方式在基于PC的计算环境中是良好的平衡投资的方法. 缺点:有管理风险.风险控制的时间进度 风险控制的时间进度安排是指在项目中风险程度高的部分优

关于多层架构一些思考

1:关于多层架构(N-Tier) 多层架构是一种被行业证明过的软件架构模型,对开发一些解决可扩展性.安全性.容 错性方面的企业级(客户端/服务端)应用程序支持是相当给力.但在.NET世界里,我们有许多工具和产品,却没有指导手册是关于如何设计和实现一个良好的 多层架构模型,比如一些样例版,Demo等等,我们或许多少有听到.看到一些关于多层架构模型的用途和益处,但更多知道的仅仅是如何使用和实现,没有过多 的思考为何我们要这样设计呢?这样设计符合了哪些设计模式呢?遵循哪些设计原则呢?或者了解一点多层的

iOS10 适配、Xcode8配置总结

随着iOS10的推送更新到来,勤劳的程序员又在加班加点的搬砖了,为此收集了一些iOS10 更新的技能给大伙参考,不断更新喜欢就star 前沿 一.Xcode8 插件你去哪了 以为是和之前一样 Xcode 升级了,只需要更新 Xcode info.plsit 中的 DVTPlugInCompatibilityUUID,结果发现一点用都木有泪奔:苹果解决xcode ghost,把插件屏蔽了,为此也给大伙找到了相关的解决方法,但是不怎么推荐这样做,因为烦的是不能够上传 iTunes content h