Safari 是新的 Internet Explorer

2025-06-10

Safari 是新的 Internet Explorer

图片来源:blog.html5test.com

不久前,The Verge 上有人发表了一篇题为“ Chrome 正在变成新的 IE 6 ”的文章。今天,我想强烈驳斥此文。我之所以如此不喜欢这篇文章,是因为它不仅提出了一些有理有据的观点,而且在提出这些观点的过程中,也证明了其标题的错误,并彻底颠覆了它试图揭示的问题。

Chrome 开始面临的问题是,它变得优秀了。谷歌在 Web 开发栈的整个流程(标准规范编写、浏览器工程、网站开发等等)上投入了太多人力,以至于其他浏览器在发布新功能时很难赶上。

然而,这并不是Internet Explorer 面临的问题。文章中提到:

忽视网络标准意味着开发人员开始专门围绕 Internet Explorer 编写他们的网站代码,并建议他们的客户只通过 Internet Explorer 访问他们的网站。

Internet Explorer(以及 2006 年左右的微软)不仅没有参与标准开发,而且还偏离了标准,从而迫使 Web 开发人员也这样做,以迎合拥有 90% 以上市场份额的浏览器。

我们看到的图表如下:
IE

像这样的图表:
铬合金

Chrome 已经把我们宠坏了,如果你最近足够幸运地体验了这些闪亮的新 API,我希望你用的是 Chrome,因为 ES6 模块在 Firefox 中仍然没有实现,而且 Firefox 和 Edge 都不支持自定义元素(Firefox 刚刚在 FF 59 的 Nightly 版本中启用了它)

但是 Safari。Safari 两者兼具**。

哦。你可能注意到了,“两者”旁边有一个大星号。没错,正如我在标题中所说,Safari 是新的Internet Explorer。Safari 支持很多 API,但也有足够多的差异,你必须注意它们。

  • 使用 ES6 模块:Safari 要求您在语句.js中包含扩展include,并且(根据我的经验)有时只会在模块内(从模块内部)看到一个函数export
  • 对于自定义元素:Safari 不支持:hostCSS 选择器,因此您尝试添加的许多嵌入式 CSS 可能无法工作。

就在今天,我正在开发一个指南针 PWA,我发现deviceorientationiOS 上的 Event 存在一个问题:alpha每次页面加载时,Event 的值都会重置为陀螺仪的初始值。所以,他们没有利用absolute规范中的属性,而是自己添加了一个webkitCompassHeading属性来设置指南针的值。

哦,苹果……

😩

鏂囩珷鏉ユ簮锛�https://dev.to/nektro/safari-is-the-new-internet-explorer-1df0
PREV
编程语言的诞生:Slate [第一部分] [第一部分] 介绍 Slate!那么它现在能做什么呢?一门新语言?为什么?它有什么不同?我能用它吗?你是怎么做到的?
NEXT
Github 必须是一个免费平台 致 GitHub 的一封信