2012-12-12 17 views
0

我的用戶定義的排序函數在IE中不起作用8.extjs4對象不支持屬性或方法「的indexOf」 IE 8的解決方法的問題

對象不支持屬性或方法「的indexOf」

roles_store.sort([{ 
    sorterFn: function(v1, v2) { 
    var order = ['read-only', 'user', 'admin', 'super'], 
     v1o = order.indexOf(v1.get('role_name')), 
     v2o = order.indexOf(v2.get('role_name'));   

     return v1o < v2o ? -1 : 1;; 
    } 
}]); 

以下鏈接顯示一種變通方法: How to fix Array indexOf() in JavaScript for Internet Explorer browsers

我試圖與Array.prototype.indexOf

的indexOf替換v2o = order.Array.prototype.indexOf(v2.get('role_name'));

我道歉,如果我錯過了一些東西在這裏

回答

1

IE 8是一個小老並且它包括一個老的JavaScript版本。它沒有很多我們每天使用的非常有用的方法。我建議包括微型陣列原型擴展庫(link)。該庫允許您使用所有新瀏覽器(包含更新的JavaScript版本)包含的所有方法(用於數組)。

您也可以使用Extjs方法,正如Evan所建議的(他們工作得很好),但您必須始終記住這一點,並且您在互聯網或本網站中找到的大部分代碼段和代碼示例都不會運行(你將不得不翻譯他們使用extjs方法)。另一個問題是,如果你不小心,你的代碼在Chrome和FF中可以正常工作,但不能在IE中正常工作。

包括我推薦給你的擴展程序要簡單多了,這就是我們在自己的項目中所做的,這是一個很好的解決方案。

相關問題