今天看到一篇《是龙王庙总免不了要被大水冲》,大概说的就是手机淘宝「误杀」Windows Phone 8.1 GDR1 的 IE 11 触屏页面。用户会卡在橘黄色的 splash screen 上。而真相是:
根据HTML5的规范,windows.history.replaceState接受3个参数,其中前2个参数必不可少。但是淘宝代码使用了Safari未符合HTML5标准的实现,代码调用replaceState函数时,只提供了1个参数,导致IE报Argument not optional错,并卡壳在起始页面。 (via)
此外就是那篇文章里说的,为了适配既有的网站,新版本IE对自己的UA字符串进行了扩充。从老版本IE11类似下面这样的形式
Mozilla/5.0 (Windows Phone 8.1; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; Microsoft; Virtual) like Gecko
变成为
Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Lumia 930) like iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, like Gecko) Mobile Safari/537
很明显多了 Android 和 iPhone 字样……各位通过 UA 检查访客浏览器的同学有没有菊花一紧?
在一个节操狂魔的知乎专栏下面有这么一段话:
知乎专栏工程师们长吁一口气,一看IE12的Edge Mode已经把我们的烂玩意全兼容了嘛,那我就不修了好了。。
你们感受一下,这是现在IE12的Edge Mode提供的UA:
Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.16 Safari/537.36
。。。。简单来说就是一台Win10上的IE满世界告诉大家说我是Win7上的Chrome31和Safari最新版哦。。。人家才不是什么IE呢讨厌了啦羞羞(
(via)
IE 的如此妥协真是醉了。webkit 真要成为下一届 IE6 一样的存在了 =。=
https://msdn.microsoft.com/en-us/library/ie/dn736066(v=vs.85).aspx
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.