Safari 是新的 Internet Explorer
图片来源:blog.html5test.com
不久前,The Verge 上有人发表了一篇题为“ Chrome 正在变成新的 IE 6 ”的文章。今天,我想强烈驳斥此文。我之所以如此不喜欢这篇文章,是因为它不仅提出了一些有理有据的观点,而且在提出这些观点的过程中,也证明了其标题的错误,并彻底颠覆了它试图揭示的问题。
Chrome 开始面临的问题是,它变得太优秀了。谷歌在 Web 开发栈的整个流程(标准规范编写、浏览器工程、网站开发等等)上投入了太多人力,以至于其他浏览器在发布新功能时很难赶上。
然而,这并不是Internet Explorer 面临的问题。文章中提到:
忽视网络标准意味着开发人员开始专门围绕 Internet Explorer 编写他们的网站代码,并建议他们的客户只通过 Internet Explorer 访问他们的网站。
Internet Explorer(以及 2006 年左右的微软)不仅没有参与标准开发,而且还偏离了标准,从而迫使 Web 开发人员也这样做,以迎合拥有 90% 以上市场份额的浏览器。
Chrome 已经把我们宠坏了,如果你最近足够幸运地体验了这些闪亮的新 API,我希望你用的是 Chrome,因为 ES6 模块在 Firefox 中仍然没有实现,而且 Firefox 和 Edge 都不支持自定义元素(Firefox 刚刚在 FF 59 的 Nightly 版本中启用了它)
但是 Safari。Safari 两者兼具**。
哦。你可能注意到了,“两者”旁边有一个大星号。没错,正如我在标题中所说,Safari 是新的Internet Explorer。Safari 支持很多 API,但也有足够多的差异,你必须注意它们。
- 使用 ES6 模块:Safari 要求您在语句
.js
中包含扩展include
,并且(根据我的经验)有时只会在模块内(从模块内部)看到一个函数export
。 - 对于自定义元素:Safari 不支持
:host
CSS 选择器,因此您尝试添加的许多嵌入式 CSS 可能无法工作。
就在今天,我正在开发一个指南针 PWA,我发现deviceorientation
iOS 上的 Event 存在一个问题:alpha
每次页面加载时,Event 的值都会重置为陀螺仪的初始值。所以,他们没有利用absolute
规范中的属性,而是自己添加了一个webkitCompassHeading
属性来设置指南针的值。
哦,苹果……
😩
鏂囩珷鏉ユ簮锛�https://dev.to/nektro/safari-is-the-new-internet-explorer-1df0