問題:若是項目使用了框架(Angular, React, Vue),而這些框架使用又有侷限,只支持部分瀏覽器。設想用戶使用了不支持的瀏覽器打開網站後一片空白,是多麼懵逼的一件事啊!!現實是又不能一個用戶一個用戶的通知他們這是由於瀏覽器版本低,不兼容。。。vue
思路:首先須要判斷出不兼容的瀏覽器,而後給用戶添加提示或者從新引導用戶到別的頁面(讓用戶知道發生了什麼,爲何會這樣)。chrome
解決方法:跨域
1,判斷瀏覽器的版本,須要根據瀏覽器的代理字符串(navigator.userAgent),而後寫一大堆的代碼去匹配關鍵詞(chrome, opr, rv:11.0, MSIE 10-6),還要指出那些瀏覽器的那些版本是不支持的,而後作統一處理(麻煩,最重要的是就算Chrome瀏覽器也會有不兼容的版本,誰能確保這些瀏覽器沒有人用??)數組
2,根據框架或者插件使用的不兼容的方法/屬性,判斷是否爲undefined,判斷瀏覽器是否能支持此框架或插件瀏覽器
好比Vue 遵循ECMAScript 5的標準,去Can I Use上查找ECMAScript 5的新特性,支持Function.prototype.bind, 數組支持forEach, indexOf方法等等,而後知道vue 使用Function.prototype.bind 方法,就能夠以下框架
Function.prototype.bind || alert('瀏覽器不支持Vue')
不要使用Object.defineProperty,由於IE8支持,但IE8上不能運行Vue程序異步
若是網站須要跨域訪問,就須要判斷瀏覽器是否支持異步請求跨域網站
'withCredentials' in new XMLHttpRequest() || alert('瀏覽器不支持異步跨域')