Javascript 的 Array.indexOf() 必須要 JS 1.6 版本才能使用,IE7、IE8 只有JS 1.3,且 IE9 改成相容 IE7 也會出問題。
/* 2012.10.12 Maple 記錄
2012.10.17 Maple 修改 */
昨天程式換版後連續遇到兩個使用者反應功能異常,
第一個是 IE9 相容模式成 IE7,另一個是 IE8
經過檢測後發現是 Javascript 的 Array.indexOf() 判斷失效,導致後續的 JS 執行強制停止
W3schools 網站中寫必須要 JS 1.6 版本才能使用,但是 IE 到底是幾版的呢 ?
爬文後發現 IE7、IE8 只有JS 1.3 阿!
而且看樣子 IE9 改成相容 IE7 也會出問題
( 一開始還真的摸不透原因,直到 IE8 的使用者也有問題才發現 ~"~ )
網友 毛豆 建議使用 JQuery 的 jQuery.inArray( target, Array) 來解決
果然比較省事呀!
若採用我 GOOGLE 到的文章 http://www.phpzixue.cn/detail1086.shtml 來解決
也就是自己擴展方法寫一個 Array._indexOf() 呼叫
會造成只要是陣列的元素,執行到 for( var tempKey in array ) { ... } 就會多一個 tempKey 為 _indexOf
所以不建議用擴展方式 !