Vue.js 不支持 IE8 你們是怎麼做的?


你開發項目是為了用 Vue.js 嗎……


if(document.all)alert("你的瀏覽器太舊了,恕不奉陪")

實際情況:

1. 首先統計你用戶有多少人在用 IE 8,淘寶某些網站 IE 8 用戶已經不到 15% 了。

2. 如何可能的話,統計一下這些用戶對公司有沒有貢獻(錢),沒有貢獻直接讓他們升級。

3. 當 IE 8 用戶低於5%,直接提示不支持。

4. 如果非要兼容,請一定告訴某些傻逼產品經理:IE 8 上的體驗沒必要做到跟 Chrome 一樣。具體表現:

Chrome 上有陰影有圓角有漸變,IE 8 上直接去掉。

Chrome 上用原生 API,IE 8 上用 Polyfill

Chrome 上運行流暢,IE 8 上必須卡,沒卡你也要把 IE 8弄卡!這樣用戶才會知道『IE 8 垃圾』

以上,就是一個生命有限的前端工程師對 IE 8 應有的態度。


那就使用avalon,avalon已經使用三種方式實現數據的監控, VBScript , Object.defineProperty, es6 Proxy。支持組件繼承,動畫等一大堆功能。https://github.com/RubyLouvre/avalon


用戶使用IE8打開網頁就提醒他們功能不全要開IE12或Edge


我只為 chrome 開發,其他的交給吧 build chain,babel 支持我就支持,babel 不支持就拉jb倒,不慣著他們這臭毛病。用360都比用IE強,國產流氓公司太不給力了。


我們公司內部系統的做法是在系統登陸頁面,也就是輸入用戶名密碼的那個地方給用戶提示

這個方塊本來是輸入用戶名密碼的表單區域,所以,這樣就足夠顯眼了。升級IE 連接到微軟的IE升級頁面,安裝Chrome 的連接一定要給出Chrome離線安裝包本地下載地址,這一點非常重要!因為很多用戶可能不會翻牆,沒法自己裝,有的用戶可能知道Chrome要翻牆,所以根本不會點那個連接,所以我們還給了tooltip提示

當然,右下加的 繼續做原始人 這個連接還是需要的,用戶點擊之後就會關掉這個提示,還原出原來的輸入用戶名密碼的表單,然後用戶進去,可能有少部分基本功能是可以用的。

這個東西推出之後效果不錯,我們用piwik統計過

之前IE11以下版本的訪問量佔了差不多10%


提示:您的瀏覽器版本太低,請升級或使用手機訪問。並同時給出客戶端下載二維碼。

使用IE條件注釋實現。

現在的智能手機普及率高,而且不會有低版本IE的問題。將不願升級IE的用戶向手機導流是可行的做法。


web 只兼容現代瀏覽器,使用老舊瀏覽器的用戶,給他們兩個選擇,一是安裝現代瀏覽器,二是安裝用 electron 包出來的客戶端,裡面跑的還是 web。


硬要做的話:

1. 找個 0day

2. 寫個包裝 Chrome 的控制項

3. 用 0day 下載控制項裝到系統裡面

4. 在你的網頁上面調用那個控制項


如果您的客戶群體IE8用戶佔據較大的比例,不建議使用vue,angular等等現在流行的前端框架,jquery和easyUI就挺好的。

實在想用新技術和新的模式,其他答豬說過的Avalon以及 Polyfill就可以。

================以下是吐槽部分=================

我看到了一大群高冷的「非IE用戶」以及「非IE」開發者。

作為一個「原始人」開發者,真的有點看不下去。一些吐槽不吐不快。

6年前開始做開發,寫商業門戶網站入行。從一開始就被各種瀏覽器兼容折磨得筋疲力盡。

使用Firefox做開發,IE調整兼容,儘力兼容IE6,並且還要考慮QQ瀏覽器和360瀏覽器自己加殼後的解析變化(那個時候chrome還沒流行,沒有所謂的雙核瀏覽器,QQ瀏覽器和360都是在IE基礎上自己加殼)。順帶還要照顧下小眾的Opera。

在那個E9還沒出,chrome還沒開始飆版本,FF還只是停留在3.X的年代,我不知道現今的一堆「前端工程師」在那個年代還能不能活得下去。

你們再鄙視低版本IE,也不能無視現在傳統行業軟體開發的現實:銀行、電信、政府、學校(這個比例低一點)的網站都是IE8為主,甚至需要兼容IE6。

如果您想讓他們升級高版本瀏覽器,請先卸載他們的Windows XP。XP系統最高支持瀏覽器IE8,無法升級到IE9。

對了,win7最低版本支持IE8,sp2默認安裝IE9,但是國內win7有幾個自動安裝補丁的?

你還別笑他們,微軟免費升級WIN10,在所謂平均素質最高的知乎也有大批大批不願升級的人呢!

說難聽點,想淘汰IE6?先等XP用戶死絕。

想淘汰IE8?先等win7用戶消失。

看了其他的答案,我建議支持 @方應杭 和 @劉津瑋 的方式,在儘可能的情況下引導用戶盡量「善意」的逼迫用戶升級系統,而不是其他人一臉不屑的高冷范。

除去傳統行業因為懶政,因為跟不上時代步伐,因為不專註技術,因為資金問題,因為設備問題不升級系統這些因素之外,政府、銀行金融、電信因為歷史和技術原因,大量使用和遺留了低版本ONLY的代碼,以及ActiveX控制項等等,尤其是金融,當初國內都是採購國外的技術,掃描儀等等都是利用了低版本瀏覽器的一些特性甚至是BUG,一旦升級會連帶著這些東西一起做廢。唯一的解決方案就是從頭再去開發一整套解決方案。

而你願意承擔這部分的成本損失?

我知道好多人會繼續一臉鄙夷地說,我這是變相地拖慢IE的拋棄速度。此地爺干不動,自有爺幹得了的地方。而後各種typescript和新的ES標準、語法糖用得飛起,對努力調試各種低版本瀏覽器的開發者嘲笑不已。

我支持VUE和其他前端框架的作者以及jquery高版本都不再支持IE8及以下瀏覽器的行為,我也一再的努力推動公司和行業盡量使用新瀏覽器和新的語言版本,但我對其他的見到低版本瀏覽器開發者就高冷嘲笑諷刺的人,以及他們的行為,感到悲哀和傷感。


我告訴你一個我見過的絕對好用的套路。你就寫:「IE8(及以下)由於存在安全風險,已被本站禁止,請升級到IE11或使用Chrome瀏覽器。」

絕對有說服力,老闆也不會反對(如果你做私活)


不用vue.js不就解決了。


謝邀。

對於無url依賴的web app而言,手機平台不存在IE問題,肯定兼容Vue。換句話說就算依賴url也沒有問題。

對於明顯url依賴的website而言,由於IE10以下不支持history.pushState,Vue兼容IE9其實都是浪費,當然應該使用伺服器端渲染非雙向綁定版了(順便也照顧到SEO,如果不考慮SEO,自己寫個前端無綁定的Vue輕量級實現應該也是比較簡單的,實際上之前Vue出2.0前,伺服器端渲染我也是用的自己寫的輕量級Vue)。切分了頁面後的以展示為主的站點,其實對MVVM的要求並不高,更多的是組件模板開發的api直觀對前端設計友好以及解耦最佳實踐罷了。

PS1:如果說得嚴謹一些,對於website(web1.0)而言,有些場景確實使用MVVM也有明顯的便利,比如管理後台。這種內部系統可以考慮強制要求使用先進的瀏覽器。

PS2:對於web2.0+(論壇、商城甚至SNS)這種所有用戶都有自己管理界面的大型網站這種最極端的情況而言,似乎目前只能建設自己的技術團隊寫優雅降級方案了,多少人工多少智能……如果大家有更好的做法可以告訴我……對於這種公司,技術方案(敏捷迭代能力,除了技術可能規範或默契也同樣重要)本來就是核心競爭力的一部分……除了Vue,更嚴峻的挑戰是各種樣式效果的兼容甚至屏幕尺寸的重新量身定做以及瀏覽器性能的權衡,重新寫一(甚至多)套代碼幾乎是不可避免的……就算Vue兼容了IE6,你還是得把幾乎所有視圖、交互相關的東西寫一(甚至多)套……

PS3:如果是外包團隊,就不要接需要兼容IE9-的活了……或者只做業務設定和視覺設計,技術實現分包吧,時間花在那上面會被市場淘汰的。當然,技術繼續進步後,更新的兼容問題可能是個持續的考驗和能力,不過現在瀏覽器比如Edge都進入「永遠最新」的在線升級模式了,以後應該不會有這個問題了……


我們公司目前是chrome交互必須高大上流暢,ie8隻保證排版和基礎功能。IE8以下不管,提示都不做。


抱歉 跟vue無關 我們壓根不考慮ie8及以下用戶....哪怕用的knockout

絕對不用avalon....尤其是avalon2.0 哪怕用ng1...


試試換用avalon?它的框架裡面加了一些VBS用來在低版本IE實現getter 和setter,IE6都可以支持


可以使用 Totoro,基於avalon2封裝的CLI。

寫法上基本跟Vue的沒有差別。

是另一個朋友寫好的,我把它重新又小封裝了一下,使得更簡潔,並且加入了CSS Module。

我們公司現在內部就都在使用這個來做IE8的兼容性框架。


推薦一款良心框架,跟vue很像但更好用,關鍵是支持IE8,甩鏈接: https://github.com/yoxjs/yox


自動跳到firefox的下載鏈接


用avalon.js, 兼容到IE6


推薦閱讀:

有前端工程師的培訓、提高的課程嗎?
如何開發組件化、模塊化的 web 應用 ?
Web前端技術在智能家居領域會有什麼應用場景?
如何看待基於框架的組件庫,為什麼要用?自己寫不好嗎?
如何看angularjs源代碼?

TAG:JavaScript | 前端工程師 | Vuejs |