首页
学习
活动
专区
圈层
工具
发布

低版本浏览器兼容方案:IE11 适配 ES6 语法与 CSS 新特性

低版本浏览器兼容方案:IE11 适配 ES6 语法与 CSS 新特性 面向仍需支持 IE11 的项目,目标是在不牺牲核心可用性的前提下,对 JS 的 ES6 语法与常用 Web API、以及 CSS 的现代特性做可控的转译...缺失,按需引入 core-js/web/url NodeList:IE11 不支持 NodeList.forEach,由 core-js 或自行降级循环 迭代器:对非数组对象进行 for-of 需要...window.Promise) { // 加载轻量垫片或关闭依赖该能力的分支 } 关键交互的降级路径明确,如文件上传改为全量刷新或轮询进度 错误兜底与重试,保障老环境下的容错体验 手动回归清单 页面首屏加载无报错...,控制台干净 路由与基本交互(点击、表单、滚动)可用 弹层、抽屉、滚动锁定不穿透 列表与栅格布局不破版,极端数据下无溢出 上传、下载、预览链路可用 深色/浅色模式在 IE11 下保持可读性 总结 IE11...,避免使用不被 IE11 完整支持的复杂凭证模式 图片与媒体降级 picture 与 srcset:在旧环境用单一 img 源或引入 picturefill WebP:提供 JPEG/PNG 回退源,服务端按

23710
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JS魔法堂:那些困扰你的DOM集合类型

    三、同名不同性——IE下怪异的HTMLCollection                  假如大家看过《JS魔法堂:追忆那些原始的选择器》,应该会了解到在IE5678下,document.all会返回一个类函数对象...其实IE这一传统一直延续到IE11,这就导致IE9、10、11下的HTMLCollection与W3C标准出现同名而不同性质的问题了。   何为类函数?...四、StaticNodeList——伪装成NodeList的小子                   从IE8开始就多了个querySelectorAll选择器方法。...但IE11中的HTMLAllCollection还可以当作函数使用,具体请看本文的第三节。...用过classList的都知道它大大提高了我们设置css类的效率,但IE10以下却不支持,polyfill可以帮我们一把。

    2.5K90

    WordPress多站点模式 在Nginx下的rewrite配置方法

    最近在把很多应用从Apache转入Nginx下,遇到最棘手的问题莫过于两个平台下rewrite规则的重新调整,下面就拿WordPress为例,和大家分享一下WordPress在多站点模式下,如何配置Nginx...我们在开启WordPress(版本:3.2.1)多站点模式的过程中,会提示我们将一段rewrite写入.htaccess文件中,如下: RewriteEngine On RewriteBase /...到了Nginx下是行不通的,我们需要对规则进行一些调整。...开始,我从网上找了很多案例进行尝试,没有一个能够正常运行,于是经过一番摸索后,写出了下面的规则,WordPress多站点模式在这套规则下可以正常运行。...下面是我调整后的Nginx下rewrite规则: location ~ /[_0-9a-zA-Z-]+/wp-admin/$ {     rewrite ^/[_0-9a-zA-Z-]+/wp-admin

    2.5K20

    JS魔法堂:浏览器模式和文档模式怎么玩?

    DOCTYPE>均没有),是采用怪异模式(Quirks);当有时,均采用浏览器版本对应的标准模式(如IE8就采用IE8标准模式,IE11就采用IE11标准模式)。  ...我们首先了解一下IE11下它的content属性值范围吧,具体范围如下: IE=5、IE=7、IE=EmulateIE7、IE=8、IE=EmulateIE8、IE=9、IE=10、 IE=11、...IE=Edge:表示采用浏览器自身版本的文档模式,如IE11,以作为文档第一行则采用IE11标准模式,否则采用怪异模式。 注意:   1....解析   css和html的解析也会受到文档模式的影响,就像在IE678标准模式时,HTML解析时会将嵌套form下的子节点挪到上一节;而IE9标准模式时不会。   3....(官方声IE9+不支持VML,但实际上IE8已经不支持了。)   若作为库或框架开发者,由于文档模式影响大部分JS API,而渲染模式影响各项样式值和获取方式等等,情况会复杂得多。

    2.5K80

    解决单例模式中懒汉式不支持高并发,饿汉式不支持懒加载问题最简单方法——基于枚举类型的单例实现

    一、前言 解决单例模式中懒汉式不支持高并发,饿汉式不支持懒加载问题,确实很多小编也是写过---> DCL(Double Check Lock双重检锁机制)解决单例模式中懒汉式不支持高并发,饿汉式不支持懒加载问题...静态内部类解决单例模式中懒汉式不支持高并发,饿汉式不支持懒加载问题 大家都可以看一下。...二、代码实现 - 单例模式对象 import java.util.concurrent.atomic.AtomicInteger; public class Single { private...,基于枚举类型的单例实现。...这种实现方式通过 Java 枚举类型本身的特性,保证了实例创建的线程安全性和实例的唯一性。比较推荐使用 Q.E.D.

    56110

    ie11兼容性视图设置怎么能自动兼容_ie11兼容模式ie8

    方法一、添加受信任的站点 1、打开IE11浏览器, 点击浏览器右上角的“工具”选项,再选择“Internet选项”; 2、点击界面的上方的“安全”选项卡,然后点击“受信任的站点”; 3、点击“站点”...方法二、添加兼容性视图设置 1、打开IE11浏览器, 点击浏览器右上角的“工具”选项,再选择“兼容性视图设置”选项; 2、将该行网站添加到“兼容性视图中的网站”; 3、关闭IE11浏览器,重新登入。...方法三、关闭保护模式 1、打开IE11浏览器, 点击右上角的“工具”选项,再选择“Internet选项”; 2、点击界面的上方的“安全”选项卡,然后点击“Internet”; 3、把“启用保护模式”的勾选去掉...方法四、禁用GPU硬件加速 如果用户的电脑是没有独立显卡的老机器,在用IE11观看优酷之类的在线视频时,会出现切换为全屏模式后当前视频就自动关闭的异常状况。...这是由于用户的集成显卡不支持硬件加速导致的,只要将当前的Flashplayer播放插件卸载,并安装10.2及以下版本即可解决。

    3.4K10

    9102 年了,还在兼容 IE11 是什么样的体验

    PC 项目可能真的无法避免吧… strict 模式下不允许分配到只读属性 reactjs IE11 中 DOM 的 style 属性是 read only 的,直接赋值 ele.style =xxx的话就会报上述错误...,改正方法是一个个属性去赋值,比如 ele.style.backgroun = 'xxxx' flexbox 语法支持度不好,known issues 可以在 caniuse 上查 特别是 flex-direction...IE11 不支持 new Date('1970-01-01 00:00:00') 语法,需要换成用 / 分割的new Date('1970/01/01 00:00:00') IE11 以下的浏览器是不支持...pdf 预览的。...但即使安装了,也可能出现 拒绝方法 的报错(这个报错目前我无法解决,搜到的方法基本上需要在浏览器设置或者 adobe reader 的设置上做一些操作,按照指引操作后,均失败)

    1.2K20

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

    Trident/4.0:IE8 从 IE11 开始又去掉了 MSIE 标识,所以不能通过 MSIE 来判断了 这样我们就大概明白了,上面我们截图中的 Trident/7.0 表示是 IE11,但是为什么图三又有了..."MSIE 7.0"兼容模式呢?...而上面的两个没有兼容模式的到底是 IE11 还是 IE 几? 再者我这只是测试了三个双核浏览器,还有那么多国产的双核浏览器又该是什么? 如何检测通知升级 首先我们的目标是检测 IE8- 提示升级。...方法如下: 直接使用“MSIE” 字段判断 对于原生的 IE 这招是没问题的,但是对于国产双核浏览器的 IE 内核,因为太多(且userAgent 说变就变),根本没有一一去验证,不知道是否能行得通。...组件 当然上面的代码只是解决方案的思路,还是有点粗糙,接下来就是搞个组件,要用的时候 npm install 下就可以了。所以现在我要去写组件了,bye。

    1.2K60

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

    Trident/4.0:IE8 从 IE11 开始又去掉了 MSIE 标识,所以不能通过 MSIE 来判断了 这样我们就大概明白了,上面我们截图中的 Trident/7.0 表示是 IE11,但是为什么图三又有了..."MSIE 7.0"兼容模式呢?...而上面的两个没有兼容模式的到底是 IE11 还是 IE 几? 再者我这只是测试了三个双核浏览器,还有那么多国产的双核浏览器又该是什么? 如何检测通知升级 首先我们的目标是检测 IE8- 提示升级。...方法如下: 直接使用“MSIE” 字段判断 对于原生的 IE 这招是没问题的,但是对于国产双核浏览器的 IE 内核,因为太多(且userAgent 说变就变),根本没有一一去验证,不知道是否能行得通。...组件 当然上面的代码只是解决方案的思路,还是有点粗糙,接下来就是搞个组件,要用的时候 npm install 下就可以了。所以现在我要去写组件了,bye。

    92810

    从IE6到IE11上运行WebGL 3D遇到的各种坑

    使用Google Chrome Frame还需要注意一下几点: Google Chrome Frame不支持直接从本地local file方式打开页面,必须把页面部署到Web服务器发布方式打开才能运行出效果...还好,我们遇到的不少项目还是允许购买新机器或者升级新浏览器系统的,但这并不以为这能上IE11就问题结束了,微软这哥们对新标准的支持要嘛落后半拍,要嘛明知标准就这样我TMD的就不实现你能咋地,相信preserve...人的话,我知道preserve-3d是w3c标准,老子就不实现,想用的自己搞蹩脚的解决方案绕道: http://msdn.microsoft.com/en-us/library/ie/hh673529(...CSS3的问题下回再扯淡,那是个无穷无尽的话题,回到我们的号称支持WebGL的IE11,至从一年前有人泄露IE11将支持WebGL就引得业界一片兴奋,千呼万唤始出来后居然还有那么多缺陷,但终归还是大好事...2、Stencil buffers还不支持,clearStencil之类的函数就不要考虑用了 3、TRIANGLE_FAN类型不支持,这个还好办,改用TRIANGLES替代顶多增加点顶点数据 4、不支持

    1K30

    基于HTML5技术的电力3D监控应用(四)

    2013年应该感谢Google和MS,前者提供了Android Chrome浏览器的WebGL支持,后者终于让IE11支持了WebGL并且减低到win7也能运行。...2、还得感谢Firefox和Opera这些厂家推动了移动终端浏览器对WebGL的支持,并且性能还都不差,早期Chrome的Android版还不支持WebGL时测试只能考他们。...4、IE11很给力,我在mac下的VirtualBox虚拟机里面IE11是唯一能跑WebGL的(其他浏览器不知道是否有开关设置可以在虚拟器可以跑的,如果有还请高人指点),但还得努力啊,一堆基础的API都不支持...,例如TRIANGLE_FAN类型都不支持,例如lineWidth都不让设置,例如Shading Language都不支持return语句,还有好多坑,但还好我们都找到方法绕开了(如果你也遇到了IE11...7、上点代表性的项目抓图,一个是IE11下的,一个是Android下的,总体说我感觉2013年经过各个厂家的努力,对于大多数的企业应用应该可以说:WebGL is Ready!

    76580

    【JS】328- 8个你不知道的DOM功能

    浏览器中对 options 对象支持的非常好:除了IE11及更早的版本外,所有浏览器都支持它,因此如果你不担心微软浏览器,那就可以使用它。...关于这个功能的一些说明: 浏览器基本上都支持 scrollTo() ,但部分浏览器依然不支持 options 对象 即使不作用于 window ,也可以使用该方法 scroll() 和 scrollBy...好吧,对计时器方法添加新的内容试一下: let timer = window.setInterval(doSomething, 3000, 10, 20); function doSomething (...正如MDN指出的那样,这个接口上的许多特性被弃用或不标准化。但最有趣和最有用的是 detail 属性,它是官方规范的一部分。...我将 blur 和 focus 包括在内,以证明这些不符合条件,并且始终返回0(即不单击) 像IE11这样的老浏览器有非常不一致的行为 请注意,该演示包含了一个很好的用例,用于演示-模拟三次单击事件的能力

    2K10

    getComputedStyle与currentStyle

    和getComputedStyle检测结果,如下图所示 4.浏览器兼容性 桌面浏览器 IE9以下版本不支持getComputedStyle方法,恰如上文所说,IE9以下的document没有defaultView...所有版本的IE以及Opera的getComputedStyle方法都不支持伪类。 手机浏览器 手机浏览器对getComputedStyle方法基本都支持。...5.IE的currentStyle 如上文所说,IE8以及IE8以下的IE都不支持getComputedStyle方法,不过IE这坨奇葩提供了另一个属性element.currentStyle。...”)合法,而getPropertyValue(“backgroundColor”)非法;IE有时候传入“-”连接符变量可以获取正确结果,有时候传入驼峰标识变量能获取正确结果,IE11下测试如下图 d....,比如“50%”等,以下为在IE11下对百度首页的测试结果 其实在大部分情况下,width、height等的绝对值对我们的用处更大,而且currentStyle也只是微软自家的属性,不是标准,所以在IE9

    2.8K20

    从IE6到IE11上运行WebGL 3D遇到的各种坑

    使用Google Chrome Frame还需要注意一下几点: Google Chrome Frame不支持直接从本地local file方式打开页面,必须把页面部署到Web服务器发布方式打开才能运行出效果...还好,我们遇到的不少项目还是允许购买新机器或者升级新浏览器系统的,但这并不以为这能上IE11就问题结束了,微软这哥们对新标准的支持要嘛落后半拍,要嘛明知标准就这样我TMD的就不实现你能咋地,相信preserve...人的话,我知道preserve-3d是w3c标准,老子就不实现,想用的自己搞蹩脚的解决方案绕道: http://msdn.microsoft.com/en-us/library/ie/hh673529(...CSS3的问题下回再扯淡,那是个无穷无尽的话题,回到我们的号称支持WebGL的IE11,至从一年前有人泄露IE11将支持WebGL就引得业界一片兴奋,千呼万唤始出来后居然还有那么多缺陷,但终归还是大好事...2、Stencil buffers还不支持,clearStencil之类的函数就不要考虑用了 3、TRIANGLE_FAN类型不支持,这个还好办,改用TRIANGLES替代顶多增加点顶点数据 4、不支持

    1.9K50

    基于HTML5技术的电力3D监控应用(四)

    1、2013年应该感谢Google和MS,前者提供了Android Chrome浏览器的WebGL支持,后者终于让IE11支持了WebGL并且减低到win7也能运行。...2、还得感谢Firefox和Opera这些厂家推动了移动终端浏览器对WebGL的支持,并且性能还都不差,早期Chrome的Android版还不支持WebGL时测试只能考他们。...4、IE11很给力,我在mac下的VirtualBox虚拟机里面IE11是唯一能跑WebGL的(其他浏览器不知道是否有开关设置可以在虚拟器可以跑的,如果有还请高人指点),但还得努力啊,一堆基础的API都不支持...,例如TRIANGLE_FAN类型都不支持,例如lineWidth都不让设置,例如Shading Language都不支持return语句,还有好多坑,但还好我们都找到方法绕开了(如果你也遇到了IE11...7、上点代表性的项目抓图,一个是IE11下的,一个是Android下的,总体说我感觉2013年经过各个厂家的努力,对于大多数的企业应用应该可以说:WebGL is Ready!

    60280

    原生 JS DOM 常用操作大全

    (false为捕获阶段,true为冒泡阶段) 注意:addEventListener() 方法 不支持低版本的IE 注册事件的三种方法 删除事件(解绑事件) 移除传统的注册方式(DOM 对象的方法...evt } 事件对象的属性和方法 e.target返回 触发 事件的对象 标准e.srcElement 返回触发事件的对象 非标准 ie6-8e.type返回事件的类型 比如 click mouseover...() 该方法阻止默认事件(默认行为)标准 比如不让链接跳转e.stopPropagation() 标准的阻止事件冒泡 事件对象的 this 与 e.target 的区别 this 指向的是事件绑定的元素...或者 Element.dataset["index"] ie11才支持使用 Element.dataset.属性 获得的是一个以 data- 开头的自定义属性集合 设置H5 自定义属性 H5中规定...查 DOM提供的API:getElementById,getElementByTagName 古老用法不太推荐使用H5提供的新方法:querySelector,querySelectorAll 提倡利用节点操作获取元素

    1.3K10
    领券