在引用jQuery時,引用高版本的Jq會在IE8下報錯,在網上查了一下,jq在2.0+的版本就已經放棄對ie8的支持了。之前沒有仔細研究過jq版本,借此機會去看了一下jq版本的知識。
一、如何查看jq的版本
$.fn.jquery
可見,這個方法在壓縮、未壓縮、高版本、低版本都可用
擼代碼
未壓縮版本
https://cdn.bootcss.com/jquery/2.0.0/jquery.js
line:49
core_version = "2.0.0",//定義當前版本號
line:98
已壓縮版本
https://cdn.bootcss.com/jquery/1.11.2/jquery.min.js
二、低版本jq在ie下不報錯,高版本jq在ie下報錯
查看2.0.0的源碼,只有addEventListener,顯然IE不支持這個方法,IE下添加事件監聽需要用attachEvent
再看1.11.2的版本源碼,有點長,做了對addEventListener的判斷,不支持的話走attachEvent
當然這只是使用高版本jq報的第一個錯誤,事情走到這一步就已經明了了,查看jq官網對瀏覽器的支持 http://jquery.com/browser-support/
我們找到這樣一段話
英語不好,拿谷歌翻譯了一下 :(Current-1)和Current表示我們支持瀏覽器的當前穩定版本及其之前的版本。 例如,如果當前版本的瀏覽器是24.x,我們支持24.x和23.x版本。
最后一句話,想要支持ie6-8,使用jq1.12-.
總結起來就是一句話:jQuery2.0.0版本沒有attachEvent所以ie8下會報錯(當然ie8下報錯不止這一個原因,但這是要想修復高版本jq在ie8下報錯首先要解決的問題,這回牽扯出一系列的ie8兼容問題,這些兼容問題jq1.12-已經解決了,官方推薦ie8下使用1.12還是有原因的)