低版本浏览器兼容方案: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 回退源,服务端按
在此分享一下思路。 实现图片预览的一些方法。 了解了一下,其实方法都是大同小异的。大概有以下几种方式: 订阅input[type=file]元素的onchange事件....所以在prototype上面定义该模式以供两个方法使用: SetPreviewPic.prototype.pattern=new RegExp('\....(jpg|png|jpeg)+$','i'); 2.3 定义方法 主要就是判断是否低于IE11的环境,编写两类方案。...第一种就是直接通过改变img的src来预览图片,第二种就是在低版本的IE下,通过滤镜来达到预览效果。...; } } IE11下利用滤镜达到效果: var nums=this.picWrap.childNodes.length;//因为IE6以下不支持querySelectorAll
三、同名不同性——IE下怪异的HTMLCollection 假如大家看过《JS魔法堂:追忆那些原始的选择器》,应该会了解到在IE5678下,document.all会返回一个类函数对象...其实IE这一传统一直延续到IE11,这就导致IE9、10、11下的HTMLCollection与W3C标准出现同名而不同性质的问题了。 何为类函数?...四、StaticNodeList——伪装成NodeList的小子 从IE8开始就多了个querySelectorAll选择器方法。...但IE11中的HTMLAllCollection还可以当作函数使用,具体请看本文的第三节。...用过classList的都知道它大大提高了我们设置css类的效率,但IE10以下却不支持,polyfill可以帮我们一把。
= false; if ( event.clipboardData || event.originalEvent ) { //not for ie11...== -1) { //getAsFile() 此方法只是living standard firefox ie11 并不支持...isChrome); }, 1); } } else { //for ie11...setTimeout(function () { var imgList = document.querySelectorAll...alert("上传图片错误"); } }); } } 注意:因为只支持右键复制图片,所以并不能一下复制两张图片
最近在把很多应用从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
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,而渲染模式影响各项样式值和获取方式等等,情况会复杂得多。
一、前言 解决单例模式中懒汉式不支持高并发,饿汉式不支持懒加载问题,确实很多小编也是写过---> DCL(Double Check Lock双重检锁机制)解决单例模式中懒汉式不支持高并发,饿汉式不支持懒加载问题...静态内部类解决单例模式中懒汉式不支持高并发,饿汉式不支持懒加载问题 大家都可以看一下。...二、代码实现 - 单例模式对象 import java.util.concurrent.atomic.AtomicInteger; public class Single { private...,基于枚举类型的单例实现。...这种实现方式通过 Java 枚举类型本身的特性,保证了实例创建的线程安全性和实例的唯一性。比较推荐使用 Q.E.D.
方法一、添加受信任的站点 1、打开IE11浏览器, 点击浏览器右上角的“工具”选项,再选择“Internet选项”; 2、点击界面的上方的“安全”选项卡,然后点击“受信任的站点”; 3、点击“站点”...方法二、添加兼容性视图设置 1、打开IE11浏览器, 点击浏览器右上角的“工具”选项,再选择“兼容性视图设置”选项; 2、将该行网站添加到“兼容性视图中的网站”; 3、关闭IE11浏览器,重新登入。...方法三、关闭保护模式 1、打开IE11浏览器, 点击右上角的“工具”选项,再选择“Internet选项”; 2、点击界面的上方的“安全”选项卡,然后点击“Internet”; 3、把“启用保护模式”的勾选去掉...方法四、禁用GPU硬件加速 如果用户的电脑是没有独立显卡的老机器,在用IE11观看优酷之类的在线视频时,会出现切换为全屏模式后当前视频就自动关闭的异常状况。...这是由于用户的集成显卡不支持硬件加速导致的,只要将当前的Flashplayer播放插件卸载,并安装10.2及以下版本即可解决。
一、前言 在polyfill querySelectorAll 和写弹出窗时都需要判断两个节点间的位置关系,通过jQuery我们可以轻松搞定,但原生...执行 selection.selectAllChildren(parentNode) 时,parentNode的内容会被高亮,并且原来高亮的部分将被取消; 2. chrome下, selection.containsNode...IE9~11下的Selection类型对象没有containsNode方法; 4....IE5.5~8下没有Selection类型; 关于IE下的[object Selection]和[object MSSelection]类型(详细可浏览《JS魔法堂:细说Selection和MSSelection...[object Range]是符合W3C标准的,而[object TextRange]和[object ControlRange]是IE独有的。
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 的设置上做一些操作,按照指引操作后,均失败)
Trident/4.0:IE8 从 IE11 开始又去掉了 MSIE 标识,所以不能通过 MSIE 来判断了 这样我们就大概明白了,上面我们截图中的 Trident/7.0 表示是 IE11,但是为什么图三又有了..."MSIE 7.0"兼容模式呢?...而上面的两个没有兼容模式的到底是 IE11 还是 IE 几? 再者我这只是测试了三个双核浏览器,还有那么多国产的双核浏览器又该是什么? 如何检测通知升级 首先我们的目标是检测 IE8- 提示升级。...方法如下: 直接使用“MSIE” 字段判断 对于原生的 IE 这招是没问题的,但是对于国产双核浏览器的 IE 内核,因为太多(且userAgent 说变就变),根本没有一一去验证,不知道是否能行得通。...组件 当然上面的代码只是解决方案的思路,还是有点粗糙,接下来就是搞个组件,要用的时候 npm install 下就可以了。所以现在我要去写组件了,bye。
使用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、不支持
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!
浏览器中对 options 对象支持的非常好:除了IE11及更早的版本外,所有浏览器都支持它,因此如果你不担心微软浏览器,那就可以使用它。...关于这个功能的一些说明: 浏览器基本上都支持 scrollTo() ,但部分浏览器依然不支持 options 对象 即使不作用于 window ,也可以使用该方法 scroll() 和 scrollBy...好吧,对计时器方法添加新的内容试一下: let timer = window.setInterval(doSomething, 3000, 10, 20); function doSomething (...正如MDN指出的那样,这个接口上的许多特性被弃用或不标准化。但最有趣和最有用的是 detail 属性,它是官方规范的一部分。...我将 blur 和 focus 包括在内,以证明这些不符合条件,并且始终返回0(即不单击) 像IE11这样的老浏览器有非常不一致的行为 请注意,该演示包含了一个很好的用例,用于演示-模拟三次单击事件的能力
和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
原文 任何UI框架或库最期望目标之一是帮助我们建立通用的模式或约定。这些约定使UI代码易于共享并为其提供理论基础。很长一段时间,每个框架或库都有自己的实现或UI组件版本。...如果有一个基于任意JavaScript库或框架编写的通用标准组件可以在任何浏览器中用,那就很好了!这是Web Components的愿景。...Web Components是标准化的底层浏览器API的集合,方便我们创建共享的可重用UI组件。在这次介绍中,我们通过构建一个Web组件的例子来介绍其中的一些API。...,我们在value属性的setter方法中添加一个自定义事件。...通过polyfill,我们还可以支持Edge(现在正在实现Web Component API)和IE11。
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!
(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 提倡利用节点操作获取元素