IE 永不死?微軟開始將不相容 IE 的網站自動重定向至 Edge

語言: CN / TW / HK

前言

作為前端工程師最痛苦的事情無非就是要相容 IE 了,但有一個令人匪夷所思的問題就是 IE 即使不更新也依然無法灰飛煙滅,由於我之前一直用的是 iMac ,所以不太瞭解 IE 的近況,以為它只存在於 Windows XP、Win7、Win8 中,隨著這一批作業系統的淘汰 IE 也許就不會再出現在人們的視野中了。

2020 年疫情的原因,過完年一直在家辦公了很長時間,一直在狹小的空間裡待著會讓人感到不適,所以我完成工作後打算玩玩遊戲來舒緩一下心情,於是就買了一臺 Windows 筆記本(大部分大家耳熟能詳的遊戲只有 Windows 能玩),萬萬沒想到收到貨後剛一開機就看到了無比熟悉的兩個圖示:

這讓我感到非常的疑惑,微軟既然已經有 Edge 了,為什麼還要在 Windows 系統上捆綁這個 IE 呢?這都 Windows 10 了還把 IE 給放桌面上,是怕它被世人遺忘麼?這麼做的話猴年馬月才能不考慮 IE 啊!

沉思

接下來我開始陷入了沉思:畢竟大部分人還是不太瞭解計算機的,桌面上如果有瀏覽器的話可能預設就直接點進去瀏覽網頁了,非計算機專業的人可能也不知道 IE 到底有什麼不好,反正不是都能瀏覽網頁嘛!IE 這麼方便又不用下載,也從來不提示我更新,不像某些國產瀏覽器一堆煩人的廣告,就用 IE 了!

這就導致了在停止更新大版本的 IE 上,一些新特性將永遠不會被支援,並且還沒有合適的 polyfill ,比如 CSS 的 grid、JS 的 Proxy,隨著各種框架的升級,這些新特性正在扮演著越來越重要的角色,比如 Vue 3、React 的 mobx、immer 等各種各樣的庫…但是為了相容這部分一直使用 IE 的人,我們將永遠也無法使用新技術!

那麼接下來會發生什麼?ES 再怎麼迭代更新,ES10、11、12、13、14、15… 那又有什麼意義呢?一些語法糖似的更新,可以使用 babel 來轉換成 IE 能識別的程式碼,但同時也犧牲了網路傳輸的體積,因為語法糖可能就一句程式碼,轉換出來可能就變成一百行程式碼了,比如我們最常用的 Promise,被 babel 轉換成 polyfill 之後程式碼一下子多了好幾十KB。

同時 ES 也不僅僅只更新語法糖,有一些特性必須要是 JavaScript 引擎級別的支援才能做到:比如 Proxy、Symbol 等,難道等我們三十來歲退休的時候也永遠無法用上新技術嗎?

可能有人會說,用不上新技術就不用唄,以前的前端開發工程師不也都幹得好好的嘛,該實現的功能不都實現了?這麼說是沒錯,但是現在產品可謂一年比一年複雜,以前用 jQuery 實現的網站,現在再讓使用者去訪問,使用者還會覺得這個網站好嗎?又慢、功能又一般、樣式也不好看、互動也不友好… 不信的話大家把今年產品經理給你提的需求記在小本本上,然後一兩年後再拿出來看看,看看兩年後的需求和兩年前的需求差距有多大,需求不升級的情況下,當然可以一直用老技術啦!不然大家誰願意學那麼多花裡胡哨的,直接什麼 Node.js、npm、webpack 的都不用裝,在編輯器生成個 html 頁面,然後<script>標籤裡引個 jQuery 一頓$,它不香嗎?尤其是如今資料視覺化需求的連年遞增,SVG、Canvas、WebGL 這些技術怎麼在 IE 上用?

我一直很不理解微軟的做法,他自己都放棄了的東西,還要強迫消費者去用(說強迫是誇張了點,但將 IE 一直放在桌面的做法確實為它的永生提供了保障),Edge 後來改用了 Chromium 核心,和國產瀏覽器一樣淪為了一個"面板"瀏覽器,但這依然令前端開發者感到開心,假如有一天我們真的團結起來了呢?我們將團結一致的勇敢對相容 IE 說不!我們開發的專案將不考慮在 IE 上會執行成什麼樣,這樣還在使用 IE 的使用者會不會就此放棄了呢?

Edge 87

微軟似乎也意識到了這個問題,許多現代網站的設計都與 IE 不相容。所以當 IE 使用者訪問不相容的站點時,他們會收到一條訊息,提醒此站點與瀏覽器不相容:

可能有的使用者會因此而下載新的瀏覽器,但有一些使用者可能略微年長或文化水平略低,導致此時並不知道該如何是好。

因此從 Edge 87 開始,當用戶使用 IE 訪問與其不相容的站點時,將會被自動重定向至 Microsoft Edge。重定向至 Edge 時,瀏覽器會為使用者顯示一次性對話方塊。說明重定向的原因,並提示是否同意將瀏覽資料和設定從 IE 匯入到 Edge,具體包括:收藏夾、密碼、搜尋引擎、開啟的選項卡、歷史記錄、設定、Cookie 和主頁。匯入資料不是必選項,不勾選也可以繼續下一步:

在使用者以Edge瀏覽網頁時,如果使用者的預設瀏覽器是IE的話,那麼Edge還會提醒使用者把預設瀏覽器改為Edge。而除了面向普通使用者的措施外,對於企業使用者,微軟也以電郵通知他們,表示從11月13日起,將不能在IE上登入微軟賬號。看起來微軟似乎也有要拋棄 IE 的打算了,但是我覺得首要的第一步還是不要在新電腦上裝 IE 了,裝別人家瀏覽器肯定是不可能,但新版谷歌核心的 Edge 瀏覽器還是可以的。

假扮成不同的瀏覽器

前兩天在公眾號上看到:

Chromium 版 Edge 會根據所訪問的站點模擬其他瀏覽器。這可能是出於相容性原因。它會通過切換使用者代理以偽裝成其他瀏覽器,將自己顯示為 Google Chrome,以便使用為該瀏覽器編碼的網站功能。

啟動 Edge 時,它會下載 JSON 配置檔案。此檔案的一部分—— EdgeDomainActions 部分 —— 告訴 Edge 訪問某些網站時如何操作。例如,訪問 Netflix.com 時,Edge 似乎是 Edge,但在訪問 Facebook 時,它會切換使用者代理並顯示為 Chrome,如果網站在 Google Chrome 瀏覽器中執行得更好,這可以讓它告訴網站它是谷歌瀏覽器。此功能還可能允許它在連線到視訊流網站時偽裝成原始 Microsoft Edge,以便利用 PlayRady 等 Microsoft DRM,這些都是 Chromium 瀏覽器通常不支援的。

底下一堆人評論:

360 雙核瀏覽器既視感

這不是國內所謂雙核瀏覽器玩了十幾年的套路嗎😂

震驚!微軟竟抄襲國內這家瀏覽器公司的雙核技術!

說白了,不還是因為相容性有問題的時候,程式通過 UA 判斷是否是 Edge 做了特殊處理。換核心以後為了不出bug,不走這個判斷唄

往期精彩文章