首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    数往知来:一次浏览器兼容工作中的知识点分析

    判断真实的IE版本 使用X-UA-Compatible设置遗留文档模式后,会带来新的问题,那就是 navigator.userAgent 返回的 MSIE 版本都是被模拟的值,而真实的浏览器版本难以判断了...对于IE8以上,userAgent中包含了Trident内核的版本,可以用来判断真实版本 对应关系为 `Trident/7.0` IE11 `Trident/6.0` IE10 `Trident...条件注释可被用来向 Internet Explorer 提供隐藏代码” -- wiki IE中有两种特有的条件注释:HTML条件注释 和 JScript条件注释 HTML条件注释 语法为 <!...更早版本的Standards mode中都支持 结合两种注释的识别IE10奇技淫巧 <!...本次难以兼容的正是HTML5 File API,简单的说就是:IE10以下不支持FileReader,分别用以下措施应对: 取消表单中上传头像的本地预览功能 有上传头像的表单从ajax提交改为原生提交

    1K10

    【一个小功能】从js判断ie版本,浅谈navigator对象的appName属性

    判断IE版本主要的是获取两个属性,a.当前浏览器名称,b.当前浏览器版本,为此不得不了解navigator对象。...包括IE10IE以下版本,appName获取值均为Microsoft Internet Explorer,如果你的电脑上安装了IE11,按F12调出控制台,使用仿真效果可以模拟各版本IE实际情况,如图...: 我们可以看看默认的IE11以及IE10部分版本的appName值情况 IE11 appName值 IE10 appName值 IE5 appName值 可以看出,版本低于11的IE版本,appName...最后简单说说Navigator的appVersion获取版本号属性,一般使用IE10以下版本,获取的值是这样的 包括IE8,IE7等低版本版本信息格式均为上图,所以在获取版本的方法 上使用了split...(“;”)来进行切割,获取下标1的元素即可判断版本

    1.8K20

    前端面试题-CSS Hack

    这时,我们为了获得统一的页面效果,就需要针对不同的浏览器或不同版本写特定的CSS样式。我们把针对不同的浏览器/不同版本写相应的CSS code的过程,叫做CSS hack!...二、CSS Hack的原理 由于不同的浏览器和浏览器各版本对CSS的支持解析结果不一样,以及CSS优先级对浏览器展现效果的影响,我们可以据此针对不同的浏览器情景来应用不同的CSS。...[endif]--> (2)IE6以下版本能识别 只在IE6-显示的内容 这类 Hack 不仅对 CSS 生效,对写在判断语句里面的所有代码都会生效。 (3)实际项目中 CSS Hack 大部分是针对 IE 浏览器不同版本之间的表现差异而引入的。...6.1 IE浏览器各版本 CSS hack 对照表 hack 写法 实例 IE6(S) IE6(Q) IE7(S) IE7(Q) IE8(S) IE8(Q) IE9(S) IE9(Q) IE10(S)

    71640

    某大厂一面:讲一下void 0是个啥?

    undefined又是啥 undefined是js原始类型值之一,也是全局对象window的属性,在部分低级别的浏览器中可以被修改,在局部作用域中也可以被修改。...undefined ie10 ie10 chrome 在最新的版本98.0.4758.102测试结果为: 你看ie老版本中就是那么任性,在全局作用域中可以直接改写undefined,也就是说当你想知道一个变量是不是等于...undefined的时候直接这样判断已经不安全了。...if (obj === undefined) { // xxx } 接下来我们再看一段js const testUndefined = function () { const obj =...=== (void 0)) // true } testUndefined() 可以得出,window,undefined本身在局部作用域中是可以被重写掉的,同样的道理,如果你在局部作用域中用以下代码来判断

    1.7K20

    抛弃 IE8,这是我们做的一个艰难的决定

    未经同意,禁止转载 距离我们抛弃 IE6、7 已经两年多了,我们就一直眼巴巴的想着什么时候可以抛弃 IE8,然后就在上个月,我们决定开始抛弃 IE8 了,原因是我们的 IE8 用户已经掉到了 1% 以下...最直接的当然是直接判断 userAgent 中有无“MSIE 8”字段,但是毕竟“talk is cheap”,原生的 IE 肯定是没问题的,不过对于那些爱恨交织的国产双核浏览器,我实在是不清楚。...经过反复查阅资料,得到了两个关键信息: 从 IE8 开始有了 Trident 标识,其各种版本对应如下: Trident/7.0:IE11 Trident/6.0:IE10 Trident/5.0:IE9...方法如下: 直接使用“MSIE” 字段判断 对于原生的 IE 这招是没问题的,但是对于国产双核浏览器的 IE 内核,因为太多(且userAgent 说变就变),根本没有一一去验证,不知道是否能行得通。...提示原生的升级,提示双核的切换为webkit内核 原生的很好检测,但是双核的检测经验证暂时实现不了,因为有些双核浏览器中就没有该浏览器的特征,如上面的图二图三 反过来,把不要升级的先剔除 我们可以先把不需要升级提示先圈起来

    77110

    抛弃 IE8,这是我们做的一个艰难的决定

    距离我们抛弃 IE6、7 已经两年多了,我们就一直眼巴巴的想着什么时候可以抛弃 IE8,然后就在上个月,我们决定开始抛弃 IE8 了,原因是我们的 IE8 用户已经掉到了 1% 以下。...最直接的当然是直接判断 userAgent 中有无“MSIE 8”字段,但是毕竟“talk is cheap”,原生的 IE 肯定是没问题的,不过对于那些爱恨交织的国产双核浏览器,我实在是不清楚。...经过反复查阅资料,得到了两个关键信息: 从 IE8 开始有了 Trident 标识,其各种版本对应如下: Trident/7.0:IE11 Trident/6.0:IE10 Trident/5.0:IE9...方法如下: 直接使用“MSIE” 字段判断 对于原生的 IE 这招是没问题的,但是对于国产双核浏览器的 IE 内核,因为太多(且userAgent 说变就变),根本没有一一去验证,不知道是否能行得通。...提示原生的升级,提示双核的切换为webkit内核 原生的很好检测,但是双核的检测经验证暂时实现不了,因为有些双核浏览器中就没有该浏览器的特征,如上面的图二图三 反过来,把不要升级的先剔除 我们可以先把不需要升级提示先圈起来

    92560
    领券