1. 程式人生 > >jQuery兼容瀏覽器IE8方法

jQuery兼容瀏覽器IE8方法

mil 兼容 發現 開頭 面向 9.1 插件 但是 his

1.前言

  在做前端開發的時候,公司的規範要求面向客戶的兼容到IE8,但是在IE8模式下經常會發現各種錯誤,某某方法未定義、不支持某屬性或對象等,使用jQuery的時候,jQuery從2.0開始不兼容IE8,最低支持IE9,所以需要引入更低的jQuery版本來兼容。

2.IE8不支持jQuery版本解決辦法

  • 通過判斷IE瀏覽器的版本來加載對應版本的jQuery

  使用語句<!--[if IE 8]> 僅IE8可識別 <![endif]--> 可在IE8模式下進行一些兼容操作。代碼如下:

1 <script type="text/javascript" src="<%=path%>/js/jquery-3.1.1.min.js"></script>
2
<!--[if IE 8]> 3 <script type="text/javascript" src="<%=path%>/js/jquery-1.9.1.min.js"></script> 4 <![endif]-->

  這樣在切換到IE8時,低版本的jQuery就會覆蓋高版本的jQuery。如果在IE8下需要調整某些元素的樣式的話,最好將JS代碼放在頁面底部(並註意是否有行內樣式),不然為某些動態加載的內容設置的樣式可能不會生效。

3.IE8不支持forEach解決辦法

  • 為不支持forEach的瀏覽器添加自定義forEach方法

  代碼如下:

1 if (typeof Array.prototype.forEach != ‘function‘) {
2     Array.prototype.forEach = function (callback) {
3         for (var i = 0; i < this.length; i++) {
4             callback.apply(this, [this[i], i, this]);
5         }
6     };
7 }

如果是引入的jQuery插件,可將該段代碼放在插件內容的開頭即可,這樣在IE8下執行forEach方法就不會報錯了。

jQuery兼容瀏覽器IE8方法